nginx rewrite中 redirect permanent有什么区别

很多博客里面写的是什么永久跳转还有什么单次跳转。。。看不懂是什么意思,求指导。。。永久是什么个永久法?... 很多博客里面写的是什么永久跳转还有什么单次跳转。。。看不懂是什么意思,求指导。。。永久是什么个永久法? 展开
 我来答
17哥
2013-12-16 · 菩提只向心觅,何劳向外求玄
17哥
采纳数:244 获赞数:1230

向TA提问 私信TA
展开全部

nginx的rewrite指令中可以通过设置该条rewrite的flag来对该规则进行说明。一般可以设置的flag有:last,break,redirect,permanent四种。


redirect说明,这条规则是一个临时的跳转,并且此时如果观察http请求的话,http的响应状态码为302.

permanent说明,这条规则是一个永久性的跳转,并且此时,http的响应状态码为301.


那么什么是永久性跳转,什么是临时跳转,这有什么作用呢?下面我们举例说明:

如果有一个url,/a。

如果配置成

rewrite "/a" "http://test.html" redirect;

则说明这个跳转是一个临时跳转,此时如果有网络爬虫爬这个链接时,是不会更新自己的url数据库的。

但是如果配置成permanet,则爬虫会更新自己的url数据库,把/a更新为http://test.html

这也就是临时跳转和永久跳转的区别。

夜来雨早来晴
推荐于2016-11-01 · TA获得超过3.1万个赞
知道大有可为答主
回答量:9110
采纳率:60%
帮助的人:793万
展开全部
last与break的区别:
last: 停止当前这个请求,并根据rewrite匹配的规则重新发起一个请求。新请求又从第一阶段开始执行…
break:相对last,break并不会重新发起一个请求,只是跳过当前的rewrite阶段,并执行本请求后续的执行阶段…

举一个例子:
server {
listen 80 default_server;
server_name dcshi.com;
root www;

location /break/ {
rewrite ^/break/(.*) /test/$1 break;
echo "break page";
}

location /last/ {
rewrite ^/last/(.*) /test/$1 last;
echo "last page";
}

location /test/ {
echo "test page";
}
}

请求:http://dcshi.com/break/***
输出: break page
分析:正如上面讨论所说,break是跳过当前请求的rewrite阶段,并继续执行本请求的其他阶段,很明显,对于/foo 对应的content阶段的输出为 echo “break page”; (content阶段,可以简单理解为产生数据输出的阶段,如返回静态页面内容也是在content阶段;echo指令也是运行在content阶段,一般情况下content阶段只能对应一个输出指令,如同一个location配置两个echo,最终只会有一个echo指令被执行);当然如果你把/break/里的echo 指令注释,然后再次访问/break/xx会报404,这也跟我们预期一样:虽然/break/xx被重定向到/test/xx,但是break指令不会重新开启一个新的请求继续匹配,所以nginx是不会匹配到下面的/test/这个location;在echo指令被注释的情况下,/break/ 这location里只能执行nginx默认的content指令,即尝试找/test/xx这个html页面并输出起内容,事实上,这个页面不存在,所以会报404的错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
满意请采纳哟
2015-11-10 · 知道合伙人教育行家
满意请采纳哟
知道合伙人教育行家
采纳数:30594 获赞数:373488
2010年本科毕业于安徽工业大学高分子材料与工程专业,并取得工科学士学位证书。

向TA提问 私信TA
展开全部
nginx的rewrite指令中可以通过设置该条rewrite的flag来对该规则进行说明。一般可以设置的flag有:last,break,redirect,permanent四种。
redirect说明,这条规则是一个临时的跳转,并且此时如果观察http请求的话,http的响应状态码为302.
permanent说明,这条规则是一个永久性的跳转,并且此时,http的响应状态码为301.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式