IIS与规则匹配,但IIS重写模块表示规则不匹配

时间:2017-08-23 21:21:51

标签: asp.net mod-rewrite iis iis-7

我在我的网站上正确应用规则时遇到了问题。

规则是:

(^((?!\/bundles\/).)*[^\/]$)

操作是使用以下方法在其末尾添加斜杠:

<action type="Redirect" url="{R:0}/" redirectType="Temporary" />

我尝试以下网址:

http://example.com:9999/bundles/bundle.js

IIS将我重定向到http://example.com:9999/bundles/bundle.js/

但是我转到IIS管理器,转到IIS重写,选择此规则,进行测试,将网址放入,单击测试,并说它不匹配。

如果它不匹配,为什么它仍然会重定向?

1 个答案:

答案 0 :(得分:0)

我创建了相同的规则,它正在重定向。因此,它按预期运作:您的规则(^((?!\/bundles\/).)*[^\/]$) 匹配http://example.com:9999/bundles/bundle.js

您规则中的问题。正确的规则是(^((?!bundles\/).)*[^\/]$)。我在bundles之前删除了斜杠。因为当请求进入规则时,它正在将规则与路径bundles/bundle.js进行比较(不启动斜线)