nginx重定向不适用于多个条件

时间:2017-10-03 15:36:40

标签: nginx url-redirection configuration-files

我有一个nginx配置,我在下面定义重定向 -

rewrite ^/my/(.*)$ /my/ redirect;

rewrite ^/help-and-support/(.*)$    /about/help-and-support redirect;

rewrite ^/about/terms-and-conditions/(.*)$ /about/terms-and-conditions redirect;

rewrite ^/about/privacy-policy/(.*)$ /about/privacy-policy redirect;

我需要再添加一个参数,如下所示 -

rewrite ^/(.*)$ http://www.abcd.com/ permanent;

但是当我在nginx配置中的“location”指令下添加以上所有“rewrite”时,它会将每个请求重定向到www.abcd.com。

我也尝试添加if条件,但它们不起作用。

我的目标是www.exmaple.com,并且该域中与上面定义的不同的任何其他网址都必须重定向到www.abcd.com

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

Nginx在找到第一个匹配后不会停止,以阻止它尝试使用break命令找到匹配的下一个正则表达式:

rewrite ^/my/(.*)$ /my/ break;

来自官方网站:http://wiki.nginx.org/HttpRewriteModule#rewrite

break - 与break指令一样,停止处理当前的ngx_http_rewrite_module指令集;