欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

经验分享

nginx_Linux常用伪静态规则大全

经验分享 我的站长站 2023-05-27 共128人阅读

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

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

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

根目录跳转二级目录

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

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

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

301跳转

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

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

不带www跳转到www

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

参数跳转

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

过滤参数

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

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

如上所示,参数中多出很多类似gpc=stf=的参数。那么如何去掉它呢?

首先区分路径test,然后判断gpc=stf=字符,接着直接跳转到新地址,并用$arg_s附上需要的s参数。