Nginx_Rewrite实战

2020-08-13  本文已影响0人  阿当运维

last(匹配完这条规则继续往下匹配)和break(匹配完这条终止匹配) ------跳转后地址栏不变
redirect (302临时重定向)和permanent (301永久重定向)---跳转后地址栏边变化

实例1:输入www.discuz.com/index.php 跳转到 www.rediscuz.com(地址栏变成这个地址)

location ~ \.php$ {
    if ( $host = 'www.discuz.com' ) {

          rewrite ^/index.php$ http://www.rediscuz.com/  permanent (^/ 表示地址栏末尾以/开头index.php结尾)
     }
}

如果是输入www.discuz.com 就跳转 那么规则应该是^/(斜杠开头 斜杠结尾),如果吧参数都转走的话, 就是^/(.*) http://跳转后网址/$1
实例2:访问/jfedu/test01/跳转至/newindex.html,浏览器地址不变。

rewrite ^/jfedu/test01/$  /newindex.html last;

实例3:访问文件和目录不存在跳转至 index.php。

 if ( !-e $request_filename )
        {
                rewrite ^/(.*)$  /index.php break;
        }

实例4:判断移动设备 ,并跳转到移动端

if ( $http_user_agent ~* "(Android)|(iPhone)|(Mobile)|(WAP)|(UCWEB)" )
{
rewrite ^/$  http://m.discuz.com/ permanent;
}

实例5:匹配 URL 访问字符串跳转。(www.discuz.com/index.php?tid=13)

if ($args ~* tid=13){
    return 404;
}

实例6:目录对换 /xxxx/123456 ====> /xxxx?id=123456。(1是第一个参数,2是第二个)

rewrite ^/(.+)/(\d+) /$1?id=$2 last;

实例7:判断是ie浏览器的就跳转到指定网页

if( $http_user_agent ~ MSIE)
{
    rewrite ^(.*)$ /ie/$1 break;
}
上一篇 下一篇

猜你喜欢

热点阅读