作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到使用 .NET MVC 站点,您可以使用多个正斜杠来访问 URL,例如:
http://www.example.com//category
http://www.example.com//category//product
<rewrite>
<rules>
<rule name="Remove multiple slashes" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{UNENCODED_URL}" matchType="Pattern" pattern="^(.*)//(.*)$" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{C:1}/{C:2}" />
</rule>
</rules>
</rewrite>
最佳答案
最后,我求助于使用重定向背后的代码来让它工作。
我在使用 IIS URL Rewrites 时遇到的问题是由于 IIS 缓存重定向的方式。当我完全禁用缓存时,正如 WouterH 建议的那样,它起作用了。但是,我不习惯以这种方式禁用缓存,因为它可能会引入性能问题。
我的解决方法是在 Global.asax.cs 文件中使用重定向代码:
protected void Application_BeginRequest(object sender, EventArgs e)
{
string requestUrl = Request.ServerVariables["REQUEST_URI"];
string rewriteUrl = Request.ServerVariables["UNENCODED_URL"];
if (rewriteUrl.Contains("//") && !requestUrl.Contains("//"))
Response.RedirectPermanent(requestUrl);
}
HTTP_X_REWRITE_URL
是由我在本地运行的 Helicon ISAPI Rewrite 添加的,但在我们的生产服务器上不可用。
<rewrite>
<rules>
<rule name="Remove multiple slashes" stopProcessing="true">
<match url=".*" />
<action type="Redirect" url="{REQUEST_URI}" />
<conditions>
<add input="{HTTP_X_REWRITE_URL}" pattern="([^/]*)/{2,}([^/]*)" />
</conditions>
</rule>
</rules>
</rewrite>
关于iis - 删除多个正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12004223/
我是一名优秀的程序员,十分优秀!