nginx 文章目录和分页的永久301重定向

赫赫无敌
  • 20

问题:
网站的栏目url变更的访问路径,用户访问的时候需要从旧栏目跳转到新栏目,需要做301永久重定向

如:
访问www.123.com/aaa/ 自动跳转到www.123.com/abc/aaa/

访问访问www.123.com/aaa/1.html 自动跳转到www.123.com/abc/aaa/1.html

nginx规则应该怎么写?

location ~* ^/china/ {

rewrite ^/china/(.*)$ /asia/china/$1 permanent;

}

这样的写法无效,

请熟悉nginx的牛人帮帮忙!

回复
阅读 2.8k
2 个回答
location ~* ^/china/ {
    return 301 /asia$request_uri;
}

建议用return实现,return只需要在location执行一次正则,全部使用已有的变量。
rewrite需要多一次正则匹配和捕获,还需要设置新变量,多了内存操作。


location ~* ^/china/ {
    rewrite ^/china/(.*)$ /asia/china/$1 permanent;
}

另外楼主你的写法是正确的,不过rewrite的时候,无法匹配大写字母
访问/China/1.html就无法rewrite

改成下方即可

location ~* ^/china/ {
    rewrite ^/(.*)$ /asia/$1 permanent;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏