我有一个ASP.Net的MVC网站运行的Umbraco CMS。我们正在为搜索引擎优化的目的做一些修改。其中之一包括对所有URL进行小写。我设置了一个IIS URL重定向规则,对所有传入的URL执行301重定向,重定向到较低版本的URL。这是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会降低所有urls。不幸的是,这包括如下路径:
/Content/MySite/Theme/css/bootstrap.min.css这一点,再加上通过HTTPS提供的主页,导致了混合内容错误。图像加载时仍会显示警告,但脚本和样式表将被阻止。
我能看到的唯一解决方案是遍历我的整个解决方案,并手动将每个URL小写。但这恰恰违背了使用URL重定向的目的。这也很奇怪,因为我肯定会错过一些。
如何更改此规则或添加其他规则,以避免这些混合内容错误?
发布于 2015-12-16 08:46:52
听起来并不是所有的内容都是通过HTTPS提供的,以获得混合内容消息。您是否使用web浏览器开发工具验证过这一点?我还对dev tools的网络选项卡感兴趣,以及没有加载的内容会返回什么状态代码。
https://stackoverflow.com/questions/34300803
复制相似问题