【问题标题】:web.config redirect to https causing redirect loopweb.config 重定向到 https 导致重定向循环
【发布时间】: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_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>

【问题讨论】:

    标签: asp.net redirect web-config http-status-code-301


    【解决方案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_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
    </rule>
    

    我无法解释为什么您的规则不起作用,但这是我一直在使用的规则,我没有遇到任何问题。值得注意的是:在使用 HTTP_HOST 值时,我偶尔会看到 IIS 重写规则出现问题,几乎就像它的值错误一样,因此可以肯定地说 IIS 重写规则不是 100% 可靠的。

    【讨论】:

    • 我仍然收到同样的错误:“Firefox 检测到服务器正在以永远不会完成的方式重定向对该地址的请求。”会不会是设置不正确?
    • @S.Wiser 你有其他的重写规则可以取代这个吗?是否有可能没有在 IIS 中安装重写模块?我认为它没有开箱即用的 IIS,必须单独安装。
    • 是的,已经有一个重写规则:fleurtations.uk.com{R:0}" /> (抱歉,不知道如何在评论中格式化)
    • 我想知道...缓存会是问题吗?您是否在其他浏览器中尝试过此操作?浏览器倾向于非常贪婪地缓存重定向 http 重定向,有时修复它的唯一方法是清除缓存。
    • 已经在多个浏览器上尝试过,并清除了缓存但问题仍然存在
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2017-04-17
    相关资源
    最近更新 更多