首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

nginx 四种flag

2012-07-19 
nginx4种flag转载:http://www.netingcn.com/nginx-rewrite-flag.html?利用nginx的rewrite的指令,可以实现u

nginx 4种flag

转载:http://www.netingcn.com/nginx-rewrite-flag.html

?

利用nginx的rewrite的指令,可以实现url的转向,对于rewrtie有四种不同的flag,分别是redirect、permanent、break和last。其中前两种是跳转型的flag,后两种是代理型。跳转型是指有客户端浏览器重新对新地址进行请求,代理型是在WEB服务器内部实现跳转的。

redirect:302跳转到rewrtie后面的地址。permanent:301永久调整到rewrtie后面的地址,即当前地址已经永久迁移到新地址,一般是为了对搜索引擎友好。last:将rewrite后的地址重新在server标签执行。break:将rewrite后地址重新在当前的location标签执行。

使用root或proxy_pass指定源,last,break都可以,但是结果可能会有差别,后面用例子说明;使用alias指定源,必须使用last。假如有如下配置:

location / {    root   /var/www/html;    index  index.html index.htm;    rewrite "/x/t.html" /y/t.html break;}location /y/ {    root  /var/www/html/other;}

当请求/x/t.html,符合rewrite规则,所以进行调整,调整的地址为/y/t.html,由于使用的flag是break,所以在“location /”中进行跳转,结果是/var/www/html/y/t.html。但如果flag为last,那么/y/t.html将在server标签中重新执行,由于存在一个“location /y/”,所以跳转被重新指定到“location /y/”标签,所以这个时候的结果为/var/www/html/other/y/t.html。

注意:使用last,如果配置不当,可能引起死循环。例如:

location /x/ {    proxy_pass http://my_proxy;    rewrite "^/x/(.*)\.html$" /x/1.html last;}

热点排行