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。(2是第二个)
rewrite ^/(.+)/(\d+) /$1?id=$2 last;
实例7:判断是ie浏览器的就跳转到指定网页
if( $http_user_agent ~ MSIE)
{
rewrite ^(.*)$ /ie/$1 break;
}
网友评论