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