【问题标题】:URL Rewrite Force to https except one domainURL Rewrite Force to https 除一个域外
【发布时间】:2018-06-11 21:40:23
【问题描述】:

首先,我需要说的是,经过数小时的谷歌搜索,我找不到获得所需结果的方法。 问题来了:

  1. 我的网站有 2 个域,例如:(foo.com) 和 (bar.com)
  2. 我需要将 foo.com 域重定向到 HTTPS
  3. 我需要 bar.com 保持其 HTTP 并且不重定向到 HTTPS

我尝试了很多规则,但没有一个能奏效。例如:

<rule name="Force HTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^(www.)?bar.com$$" ignoreCase="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>

【问题讨论】:

    标签: ssl https url-rewriting web-config


    【解决方案1】:

    这应该将 foo.com 重定向到 HTTPS:

    <rule name="Add WWW prefix to foo.com and use HTTPS" stopProcessing="true">
         <match url="(.*)" ignoreCase="true" />
          <conditions>
              <add input="{HTTP_HOST}" pattern="^foo\.com" />
          </conditions>
          <action type="Redirect" url="https://www.foo.com/{R:1}" redirectType="Permanent" />
     </rule>
    

    对于 bar.com:

    <rule name="Force NonHTTPS" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
            <add input="{HTTPS}" pattern="on" />
        </conditions>
        <action type="Redirect" url="http://{HTTP_HOST}/{REQUEST_URI}" />
    </rule>
    

    查看第一条规则中的stopProcessing 属性。当 foo.com 匹配时,它应该停止处理下一个规则。这将不允许触发“强制非HTTPS”规则。

    【讨论】:

    • 感谢您的回复,bar.com 未重定向到 https,这没关系,但 foo.com 给了我这个错误:“此页面无法正常工作 foo.com 将您重定向了太多次。 "
    猜你喜欢
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2019-08-13
    • 2021-02-06
    • 2012-12-29
    • 2014-08-30
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多