Redirect IIS Url重写-从不安全的www到安全的www

Redirect IIS Url重写-从不安全的www到安全的www,redirect,iis,url-rewriting,iis-8,url-rewrite-module,Redirect,Iis,Url Rewriting,Iis 8,Url Rewrite Module,我的网站发布在IIS8(V.10.0.17)上,我添加了重定向到https的规则 所有个案均包括: -> -> www.example.com-> example.com-> 除此之外: ->没有重定向到: 不确定我遗漏了什么,这是我的网站。确认: <system.webServer> <rewrite> <rules> <rule name="CanonicalHostNameRu

我的网站发布在IIS8(V.10.0.17)上,我添加了重定向到https的规则

所有个案均包括:

  • ->
  • ->
  • www.example.com->
  • example.com->
  • 除此之外:

  • ->没有重定向到
  • 不确定我遗漏了什么,这是我的网站。确认:

    <system.webServer>
            <rewrite>
                <rules>
                    <rule name="CanonicalHostNameRule1">
                        <match url="(.*)" />
                        <conditions>
                            <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
                        </conditions>
                        <action type="Redirect" url="http://example.com/{R:1}" />
                    </rule>
                    <rule name="HttpToHttps" stopProcessing="true">
                        <match url="(.*)" />
                        <conditions>
                            <add input="{HTTPS}" pattern="^OFF$" />
                        </conditions>
                        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    

    根据您的描述,我建议您可以尝试使用下面的url重写规则。您应该使用example.com而不是{HTTP_HOST}。因为http_主机将是ww.example.com而不是example.com

                <rule name="CanonicalHostNameRule1">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://example.com/{R:1}" />
                </rule>
                <rule name="HttpToHttps" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://example.com/{R:1}" redirectType="SeeOther" />
                </rule>
    
    
    

    根据您的描述,我建议您可以尝试使用下面的url重写规则。您应该使用example.com而不是{HTTP_HOST}。因为http_主机将是ww.example.com而不是example.com

                <rule name="CanonicalHostNameRule1">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://example.com/{R:1}" />
                </rule>
                <rule name="HttpToHttps" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://example.com/{R:1}" redirectType="SeeOther" />
                </rule>