0

我刚刚发现我的 nginx 语法不正确:

location /news { rewrite ^(.*)$ /blog redirect;}

我想将 mysite.com/news 重定向到 mysite.com/blog 但该代码将更多页面重定向到博客。

任何人都可以帮我解释错误并告诉我如何正确重定向?

谢谢

4

2 回答 2

1

最佳做法是仍然使用location. 如果您不希望下面/news的任何内容重定向到/blog(例如,不需要通配符),那么以下就是您想要的,并且可能是创建单个别名的最有效方法:

location = /news {
    return 301 /blog;
}

否则,如果您这样做,实际上需要一个通配符:

location /news {
    rewrite ^/news(.*)  /blog$1 permanent;
}

PS 另请注意,这redirect会导致302重定向;如果需要301,则调用关键字permanent

于 2016-07-04T16:45:32.927 回答
0

你不需要把它放在位置块内。只需一个重写规则就足够了。

rewrite ^/news/?$ /blog redirect;

于 2016-07-04T15:46:57.660 回答