【问题标题】:IIS URLRewrite https non-www to https-wwwIIS URLRewrite https 非 www 到 https-www
【发布时间】:2019-04-19 02:17:12
【问题描述】:

很难配置重写规则。

我基本上想要:

  1. 非 www 请求被重定向到带有 www 的请求
  2. 非 https 请求应使用 https 重定向到一个

所需的重定向:

Requested Url                   Redirected To
http://example.com              https://www.example.com/
http://www.example.com          https://www.example.com/
https://example.com             https://www.example.com/
https://www.example.com         https://www.example.com/

重写配置1:

<rules>
    <rule name="Redirect HTTP to HTTPS" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
            <add input="{HTTPS}" pattern="^OFF$" />
        </conditions>
        <action type="Redirect" url="https://www.example.com/{R:0}" />
        <!--redirect to https -->
    </rule>
    <rule name="Add WWW prefix" stopProcessing="true">
        <match url=".*" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^example.com$" />
        </conditions>
        <action type="Redirect" url="https://www.example.com/" />
    </rule>         
</rules>

重写配置2:(来自IIS Redirect non-www to www AND http to https)。

<rules>
    <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.example.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
</rules>

问题主要在于https://example.com - 它没有正确引导

【问题讨论】:

    标签: asp.net iis url-rewriting web-config


    【解决方案1】:

    试试这个:

    <rules>
        <rule name="Redirect example.com to www" patternSyntax="ECMAScript" stopProcessing="true">
            <match url=".*" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^example.com$" />
            </conditions>
            <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
        </rule>
        <rule name="Redirect to example.com https" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
            <match url="*" negate="false" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTPS}" pattern="off" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
        </rule>
    </rules>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-16
      • 1970-01-01
      • 2020-11-28
      • 2015-04-06
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多