nginx_Linux常用伪静态规则大全
下面是几条经典的伪静态规则,供大家学习参考:
permanent参数是永久性重定向,状态码是301
redirect参数临时重定向,状态码是302
根目录跳转二级目录
从/d/pic20240103/pcfpllgmr0n class="brush:xml;toolbar:false">if($request_uri~^/\?url=){rewrite^/(.*)$/news/$1redirect;}
点评:难点在于这是在根目录进行跳转(仅有参数,特征非常不明显),并且前后参数一致(容易出现死循环,跳转到xiaoboy.cn/new/new/new/new/.......)。
301跳转
location/{if($host~'caijicaiji.com'){return301http://www.caijicaiji.com$request_uri;}}
点评:根据host来判断域名,并进行跳转
不带www跳转到www
location/{if($http_host~*"^(xiaoboy\.cn)(:80)?"){rewrite^/(.*)http://www.xiaoboy.cn/$1redirect;}}
参数跳转
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参数。