nginx_Linux常用伪静态规则大全

下面是几条经典的伪静态规则,供大家学习参考:

permanent参数是永久性重定向,状态码是301

redirect参数临时重定向,状态码是302

根目录跳转二级目录

从http://wdzzz.com/?url=abc跳转到http://wdzzz.com/new/?url=abc

1
2
3
4
if ( $request_uri ~ ^/\?url= )
{
rewrite ^/(.*)$ /news/$1 redirect;
}

点评:难点在于这是在根目录进行跳转(仅有参数,特征非常不明显),并且前后参数一致(容易出现死循环,跳转到xiaoboy.cn/new/new/new/new/…….)。

301跳转

1
2
3
4
location / {
if ($host ~ 'wdzzz.com'){
return 301 http://www.wdzzz.com$request_uri;
}}

点评:根据host来判断域名,并进行跳转

不带www跳转到www

1
2
3
4
5
location / {
if ($http_host ~* "^(xiaoboy\.cn)(:80)?"){
rewrite ^/(.*) http://www.xiaoboy.cn/$1 redirect;
}
}

参数跳转

1
2
3
4
if ($query_string ~* "tag=(.*?)$"){
set $tag $1;
rewrite ^/plug/tags.asp$ /index.php?s=$tag? permanent;
}

过滤参数

由于种种原因,带了不同参数,可能意味它是一个不同的文件,会造成各种资源浪费。下面就讲讲如何过滤参数

1
2
3
4
5
location /test/ {
if ($args ~* "gpc=stf=(.*?)$") {
rewrite ^ $scheme://$host/test/?s=$arg_s? permanent;
}
}

爱搜源码 » nginx_Linux常用伪静态规则大全

发表评论

发表评论