301一般是某个页面链接改动后,出现新链接,旧链接变成404,十分不利于用户体验,因此建议把旧链接301跳转到新链接上,传递权重过去,对网站更换cms尤其重要,往往更换cms后链接规则不同,导致老站权重丢失
一般修改的301规则都是没有问号的,比如说
rewrite ^/jingji(.*)$ https://www.kylunwen.com/list-6-1.html permanent;
以上这种只适合静态链接
但是对于旧链接页面(或者蜘蛛老抓动态链接页面,但是动态链接又不想让他参与排名)有问号的多参数的就不好使了
只能用一下的方法,这是只有一个参数的
if ($request_uri ~* "^/\?p=(\d+)$") {
set $myarg1 $1;
rewrite .* https://www.kylunwen.com/$myarg1.html? permanent;
}
带两个参数可以这样
if ($request_uri ~* "^/index.php\?moduleid=(\d+)&itemid=(\d+)$") {
set $myarg1 $1;
set $myarg2 $2;
rewrite .* https://www.kylunwen.com/$myarg1-0-$myarg2-1.html? permanent;
}