【问题标题】:IIS Rewrite Rule Redirect HTTP to HTTPS causes multiple RedirectURL querystringIIS 重写规则将 HTTP 重定向到 HTTPS 导致多个 RedirectURL 查询字符串
【发布时间】:2016-12-14 07:09:16
【问题描述】:

我们正在使用此规则将 HTTP 重定向到 HTTPS:

<rewrite>
    <rules>
        <rule name="Redirect HTTP to HTTPS" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="^OFF$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{HTTP_URL}" redirectType="SeeOther" />
        </rule>
    </rules>
</rewrite>

这很好用,但是当用户为这样的 URL 添加书签时:

h t t p://www.mysite.com/myapp/login.aspx?ReturlURL=/someurl

它按预期将它们重定向到 HTTPS,但使用 2 ReturnURL 查询字符串,当他们登录时会导致 404 错误:

h t t p s://www.mysite.com/myapp/login.aspx?ReturnURL=/someurl&ReturnURL=/someurl

如何处理这种情况?提前致谢!

【问题讨论】:

  • stackoverflow 不允许使用 URL,所以我必须在 http/https 中添加空格。

标签: asp.net iis url-rewriting


【解决方案1】:

将您的操作更改为:

<action type="Redirect" url="https://{HTTP_HOST}{HTTP_URL}" appendQueryString="false" redirectType="SeeOther" />

注意appendQueryString="false" 属性:)

【讨论】:

  • 我有同样的问题,但这里发布的解决方案不起作用......这是我的规则:&lt;rewrite&gt; &lt;rules&gt; &lt;rule name="HTTP To HTTPS" enabled="true" stopProcessing="true"&gt; &lt;match url="(.*)" /&gt; &lt;conditions&gt; &lt;add input="{HTTPS}" pattern="^OFF$" /&gt; &lt;/conditions&gt; &lt;action type="Redirect" url="https://{HTTP_HOST}{HTTP_URL}" appendQueryString="false" redirectType="SeeOther" /&gt; &lt;/rule&gt; &lt;/rules&gt; &lt;/rewrite&gt;
猜你喜欢
  • 2019-11-24
  • 2018-07-30
  • 2021-03-09
  • 2013-06-02
  • 1970-01-01
  • 2014-11-04
  • 2015-08-10
  • 1970-01-01
  • 2017-04-17
相关资源
最近更新 更多