【发布时间】:2015-12-15 22:39:12
【问题描述】:
我有一个运行 Umbraco CMS 的 ASP.Net MVC 网站。我们正在为 SEO 目的进行一些修改。其中之一包括将所有 URL 小写。我已经设置了一个 IIS URL 重定向规则,对所有传入的 URL 执行 301 重定向到 URL 的 ToLower 版本。这是 IIS 创建的默认规则:
<rule name="LowerCaseRule" stopProcessing="true">
<match url="[A-Z]" ignoreCase="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Redirect" url="{ToLower:{URL}}" redirectType="Permanent" />
</rule>
我还有一些额外的规则(http => https,删除尾部斜杠),但这似乎是问题之一。
正如预期的那样,这个 ToLower 降低了所有 url。不幸的是,这包括如下路径:
/Content/MySite/Theme/css/bootstrap.min.css
这与通过 HTTPS 提供的主页相结合会导致混合内容错误。加载图像时仍会出现警告,但脚本和样式表会被阻止。
我能看到的唯一解决方案是检查整个解决方案并手动将每个 URL 小写。但这反而违背了使用 URL 重定向的目的。这也是疯狂的片状,因为我肯定会错过一些。
如何更改此规则或添加其他规则以避免这些混合内容错误?
【问题讨论】:
标签: asp.net-mvc redirect iis