Nginx:排除特定的基于名称的重定向规则

时间:2017-02-21 06:08:00

标签: .htaccess redirect mod-rewrite nginx url-redirection

我在nginx配置上有重定向规则,比如,

location ~ ^/abc/(.*)  {
rewrite ^www.abc.com/web/primary/abc.html/$1;
}

但我需要排除我的重定向位置的几个目录,例如

location ~ ^/abc/ae
location ~ ^/abc/be

不应将那些ae和be重定向到上面的URL。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

虽然可以使用location块实现,但您需要使块功能对于动态内容来说很复杂。

最简单的方法是正则表达式中的否定先行断言

在您的示例中,location块并不是必需的,并且您的rewrite指令似乎缺少一些空格。但是这样的事情对你有用:

rewrite ^/abc/(?!ae|be)(.*)$ /foo/$1 last;

(?!序列开始正则表达式(ae|be),不得出现在该点。有关详情,请参阅this document