Asp.net mvc 为什么我的301重定向会导致混合内容错误?

Asp.net mvc 为什么我的301重定向会导致混合内容错误?,asp.net-mvc,redirect,iis,Asp.net Mvc,Redirect,Iis,我有一个ASP.NETMVC网站运行Umbraco CMS。我们正在为SEO目的做一些修改。其中之一包括所有URL的小写。我已经设置了一个IIS URL重定向规则,对所有传入的URL执行301重定向,将其重定向到URL的较低版本。这是IIS创建的默认规则: <rule name="LowerCaseRule" stopProcessing="true"> <match url="[A-Z]" ignoreCase="false" />

我有一个ASP.NETMVC网站运行Umbraco CMS。我们正在为SEO目的做一些修改。其中之一包括所有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>
这与通过HTTPS提供的主页相结合,会导致混合内容错误。图像仍然加载警告,但脚本和样式表被阻止

我能看到的唯一解决方案是遍历我的整个解决方案并手动将每个URL小写。但这恰恰违背了使用URL重定向的目的。这也很疯狂,因为我肯定会错过一些


如何更改此规则或添加其他规则以避免这些混合内容错误?

听起来并不是所有内容都通过HTTPS获得混合内容消息。您是否已使用web浏览器开发工具对此进行了验证?
我还对“开发工具”的“网络”选项卡感兴趣,并对未加载的内容返回的状态代码感兴趣。

内容通过HTTPS提供。但是,当IIS将调用从“/Content/MySite/Theme/css/bootstrap.min.css”重定向到“/Content/MySite/Theme/css/bootstrap.min.css”时,该重定向将作为HTTP发送,因此会出现混合内容警告。我需要强制重定向以遵守协议,但我不知道如何执行。好的,因此http=>https规则对引导文件无效。在这条规则中,您是否有任何规定说不要对CSS文件执行此操作,或者仅对aspx执行此操作(例如)?我假设这个文件是从同一个网站上提供的,上面有这个规则。Hrm,经过更多的研究,看起来https重定向实际上并没有针对.js文件。现在是这样,我得到了404。也就是说,无法通过https提供内容。现在的问题是如何使IIS通过https提供该内容。好的,如果IIS通过https提供页面服务,那么我怀疑需要配置的是IIS,因为您已经在端口/协议上为您的站点提供服务了。我现在猜测的是翁布拉科的参与。。。。下面的链接在应用程序url的底部有一个配置设置,如果还没有,可以指定https。我不确定什么时候会用到Umbraco,但是,祝你好运,你离我越来越近了,我实际上认为问题在于我们的负载平衡器设置。IIS只提供HTTP页面,这些页面在负载平衡器上加密,负载平衡器将它们作为HTTPS传递。我认为来自浏览器的资源调用以HTTP的形式传入负载平衡器,然后以HTTP的形式传递到Web服务器,在那里它们被转换为HTTPS,这将导致404。需要做的是让负载平衡器进行转换,而不是IIS。也许IIS HTTP->HTTPS重定向规则是错误的,应该在负载平衡器上完成。
    /Content/MySite/Theme/css/bootstrap.min.css