【问题标题】:IIS Redirect non-www to www AND http to httpsIIS 将非 www 重定向到 www 和 http 到 https
【发布时间】:2015-09-09 22:56:30
【问题描述】:

我正在尝试为 IIS 实现两条规则,以将非 WWW 重定向到 WWW 并将 http 重定向到 https。

http://zzz.com -> https://www.zzz.com
http://www.zzz.com -> https://www.zzz.com
https://zzz.com -> https://www.zzz.com

所以,我将它添加到我的 web.config 中:

  <system.webServer>
<rewrite xdt:Transform="Insert">
  <rules>
    <rule name="Force WWW" enabled="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^[^www]" />
      </conditions>
      <action type="Redirect" url="https://www.zzz.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
    <rule name="Force HTTPS" enabled="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="off" />
      </conditions>
      <action type="Redirect" url="https://www.zzz.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>    

我的问题:

有什么方法可以将这些合并到一个规则中?

【问题讨论】:

    标签: asp.net-mvc iis


    【解决方案1】:

    是的,您可以将它们合并为一个,并将逻辑分组用于条件并将其设置为 Any,这相当于“OR”。例如:

    <rule name="Force WWW and SSL" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAny">
          <add input="{HTTP_HOST}" pattern="^[^www]" />
          <add input="{HTTPS}" pattern="off" />
      </conditions>
      <action type="Redirect" url="https://www.zzz.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
    

    【讨论】:

    • 嗨,当我为自己的问题尝试此操作时,当我尝试转到 example.com 时赢得 2012 IIS 8,然后它会出错。 example.com 转到 example.com 和 example.com,但 example.com 只是将我带到无法访问此站点 example.com 的服务器 DNS 地址找不到。尝试:重新加载页面 检查连接 检查代理、防火墙和 DNS 配置 ERR_NAME_NOT_RESOLVED
    • 顺便说一句,我有 4 个绑定设置,其中一个带有 www 用于 http 和 https,一个没有 www
    • 您确实需要 4 个绑定。 IIS 需要对域的每个“坏”版本以及首选域进行绑定。例如http://zzz.com, https://zzz.com, http://www.zzz.com, https://www.zzz.com.
    • @carlos:如何使本示例中的域名动态化并在重定向中保留?我想用你的例子,但我现在有这个条件:&lt;add input="{HTTP_HOST}" pattern="^[^\.]+\.[^\.]+$" /&gt; 和这个动作&lt;action type="Redirect" url="https://www.{HTTP_HOST}/{R:0}" /&gt; 帮助表示赞赏!
    • @PhilM 绑定提醒是首要的。我很容易忘记这一点。
    猜你喜欢
    • 1970-01-01
    • 2019-12-13
    • 2018-09-26
    • 2015-05-01
    • 2012-05-30
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多