• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
Nginx配置文件中rewrite指令标志位的说明使用
发布日期:2016-1-9 17:1:44

  1、语法:rewrite regex(表达式) replacement(替换项) flag(标志位)。

  2、尾部的标记flag可以是以下的值:

  break: 本条规则匹配完成后,终止匹配,不再匹配后面的规则

  last: 相当于apache里面的[L]标记,表示rewrite,完成重写指令,之后搜索相应的URI或location

  permanent: 返回301永久重定向,浏览器地址会显示跳转后的URL地址

  redirect: 返回302临时重定向,浏览器地址会显示跳转后的URL地址

  3、break与last的区别:

  break:相对last,break并不会重新发起一个请求,只是跳过当前的rewrite阶段,并执行本请求后续的执行阶段

  last: 停止当前这个请求,并根据rewrite匹配的规则重新发起一个请求。新请求又从第一阶段开始执行

  例:server {

  listen 80;

  server_name test.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://test.com/break/*

  输出: break page

  请求: http://test.com/last/*

  输出: test page

  说明:last与break最大的不同是,last会重新发起一个新请求,并重新匹配location,所以对于/last,重新匹配请求以后会匹配到/test/,所以最终对应的输出是test page