当前位置: > Linux服务器 > nginx >

Nginx配置文件中rewrite指令标志位的说明与使用

时间:2016-01-03 00:35来源:linux.it.net.cn 作者:IT

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

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

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

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

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

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

3. last与break的区别:

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

   break:相对last,break并不会重新发起一个请求,只是跳过当前的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


 

 
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容