web.config 重定向到 https 导致重定向循环
Posted
技术标签:
【中文标题】web.config 重定向到 https 导致重定向循环【英文标题】:web.config redirect to https causing redirect loop 【发布时间】:2016-06-15 04:41:33 【问题描述】:我正在尝试在 web.config 中使用此代码将网站上的所有页面重定向到 https:// 但是,一旦我尝试这样做,我就会得到一个无限循环(Firefox 告诉我重定向永远不会正确结束) ,但我不知道为什么。我只能访问 FTP,不能直接访问服务器,所以我不能使用 GUI 方法。我对此不熟悉,任何帮助将不胜感激。
<rule name="Redirect to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="HTTPS" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://HTTP_HOSTREQUEST_URI" redirectType="Permanent" appendQueryString="false" />
</rule>
【问题讨论】:
【参考方案1】:试试这个规则,它不是检查HTTPs == off
,而是检查HTTPS != ON
。
<rule name="Redirect to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="HTTPS" pattern="^ON$" negate="true" />
</conditions>
<action type="Redirect" url="https://HTTP_HOSTREQUEST_URI" redirectType="Permanent" appendQueryString="false" />
</rule>
我无法解释为什么您的规则不起作用,但这是我一直在使用的规则,我没有遇到任何问题。值得注意的是:在使用 HTTP_HOST
值时,我偶尔会看到 IIS 重写规则出现问题,几乎就像它的值错误一样,因此可以肯定地说 IIS 重写规则不是 100% 可靠的。
【讨论】:
我仍然收到同样的错误:“Firefox 检测到服务器正在以永远不会完成的方式重定向对该地址的请求。”会不会是设置不正确? @S.Wiser 你有其他的重写规则可以取代这个吗?是否有可能没有在 IIS 中安装重写模块?我认为它没有开箱即用的 IIS,必须单独安装。 是的,已经有一个重写规则:以上是关于web.config 重定向到 https 导致重定向循环的主要内容,如果未能解决你的问题,请参考以下文章
web.config 中的 IIS 重写规则将 HTTPS 请求重定向到 HTTP
如何通过 Web.config 或 C# 将所有内容重定向到 https://www。网站的版本?
从 .Net 应用程序中的 Web.config 重定向 URL
Web.config mass 301 将旧新闻页面重定向到略有不同的 URL