2017-05-13 48 views
1

我需要做的是将所有请求重定向到https和非www网址。例如: -http:// example .com/something#hash - > https:// example .com/something#hash - https://www。 example .com/something#hash - > https:// example .com/something#hash - http://www。例如.COM /#的东西散 - > https://开头例如.COM /#的东西散Web.config重定向所有到https和非www

我所做的和没有工作...:

<rewrite> 
    <rules> 
    <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="localhost" negate="true" /> 
     <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
     </conditions> 
     <!--<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />--> 
     <action type="Redirect" url="https://example.com/{R:1}" redirectType="Permanent" /> 
    </rule> 

    <rule name="Redirect to non-www" stopProcessing="true"> 
     <match url="(.*)"></match> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="^example.com$" negate="true"></add> 
     </conditions> 
     <action type="Redirect" url="https://example.com/{R:1}" redirectType="Permanent" /> 
    </rule> 
    </rules> 
    <outboundRules> 
    <rule name="Add Strict-Transport-Security when HTTPS" enabled="true"> 
     <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="on" ignoreCase="true" /> 
     </conditions> 
     <action type="Rewrite" value="max-age=31536000" /> 
    </rule> 
    </outboundRules> 
</rewrite> 

谢谢!

回答

0

试试这个:

<rule name="HTTP to HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> 
        <match url="*" /> 
        <conditions> 
         <add input="{HTTPS}" pattern="off" /> 
        </conditions> 
        <action type="Redirect" url="https://www.{HTTP_HOST}{REQUEST_URI}" redirectType="Found" /> 
       </rule> 
相关问题