我刚刚发现我的nginx语法不正确:
location /news { rewrite ^(.*)$ /blog redirect;}
我想将mysite.com/news重定向到mysite.com/blog,但该代码将更多页面重定向到博客。
任何人都可以帮我解释错误并告诉我如何正确重定向?
感谢
答案 0 :(得分:1)
最佳做法是仍然使用location
。如果您不希望/news
以下的任何内容重定向到/blog
(例如,不需要通配符),那么以下是您想要的,并且可能是创建单个的最有效方式别名:
location = /news {
return 301 /blog;
}
否则,如果你这样做,实际上需要一个通配符:
location /news {
rewrite ^/news(.*) /blog$1 permanent;
}
P.S。另请注意redirect
would cause 302
redirects; if you want 301
, then the keyword is called permanent
。
答案 1 :(得分:0)
你不需要把它放在位置块内。只需一个重写规则即可。
rewrite ^/news/?$ /blog redirect;