我需要使用Url Rewriting,所以我在Web.config中创建了一个测试用例来检查它是否有效:
的Web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="Fail bad requests">
<match url=".*"/>
<action type="AbortRequest" />
</rule>
</rules>
</rewrite>
... other stuff
</system.webServer>
我期待任何localhost:3285
中止并失败,但输入正确。
我在IIS Express中使用Url Rewrite。
答案 0 :(得分:2)
我猜你的问题是浏览器缓存。我发现如果我在IE中打开一个网页,然后添加URL重写规则(需要停止IIS express),然后在IE中再次打开同一页面它仍然加载页面(并且看起来中止规则没有被应用) 。但是,如果我清除IE浏览器缓存并刷新页面,则会发生中止。
这是一个适合我的完整Web.config
示例
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<system.webServer>
<rewrite>
<rules>
<rule name="Fail bad requests">
<match url=".*"/>
<action type="AbortRequest" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
您的示例应该有效,因为URL重写模块内置于当前版本的IIS Express中: http://www.iis.net/learn/extensions/introduction-to-iis-express/iis-express-overview