如何使用IIS重定向URL中的额外正斜杠

sty*_*fle 5 asp.net iis redirect

这个问题最适用于示例.

说我的网络应用程序托管在 http://example.com/WebApp/

据微软称,如果缺少尾随斜杠,IIS将重定向.这可以按预期工作:发送到的请求http://example.com/WebApp被重定向到http://example.com/WebApp/.

现在在我的情况下,有人用一个额外的正斜杠为URL添加了书签:http://example.com/WebApp//.这将按预期加载Web应用程序,但现在所有相对URL都是错误的.因此,如果我在同一个域上调用另一个应用程序../AnotherApp/SomePage.aspx,那么它将尝试加载/WebApp/AnotherApp/SomePage.aspx而不是正确加载/AnotherApp/SomePage.aspx.

我该如何重定向http://example.com/WebApp//http://example.com/WebApp/

Jas*_*ung 0

您可以将 IIS 重写模块 ( http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Rule_Pattern ) 与重定向到单斜杠版本的正则表达式结合使用。

例如,您可以使用以下正则表达式将 URL 与额外的斜杠相匹配:

http://.*/{2,}