2016-05-04 3 views
1

Ich versuche nur Benutzer zu umleiten, die http eintritt: //site.domain.com zu https: //site.domain.comIIS Rewrite - Nur die Wurzel eines Host-Namens zu HTTPS umleiten?

Jede andere http Seite https nicht umleiten sollte (ex: http://site.domain.com/page2)

ich habe diesen Ansatz versucht:

<rewrite> 
     <rules> 
      <rule name="Redirect to HTTPS" enabled="true" patternSyntax="ECMAScript" stopProcessing="true"> 
       <match url="^$" ignoreCase="true" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{HTTPS}" pattern="^OFF$" /> 
        <add input="{HTTP_HOST}" pattern="^site\.domain\.com$" /> 
       </conditions> 
       <action type="Redirect" url="https://site.domain.com/" appendQueryString="false" redirectType="SeeOther" /> 
      </rule> 
     </rules> 
    </rewrite> 

Oder diese:

<rewrite> 
     <rules> 
      <rule name="Redirect to HTTPS" enabled="true" patternSyntax="ECMAScript" stopProcessing="true"> 
       <match url="(.*)" ignoreCase="true" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{HTTPS}" pattern="^OFF$" /> 
        <add input="{HTTP_HOST}" pattern="^site\.domain\.com$" /> 
        <add input="{PATH_INFO}" pattern="^$" /> 
       </conditions> 
       <action type="Redirect" url="https://site.domain.com/" appendQueryString="false" redirectType="SeeOther" /> 
      </rule> 
     </rules> 
    </rewrite> 

Aber keine Umleitung erfolgt. Fehle ich etwas?

Antwort

1

What is the regular expression to match the empty string for a rewrite rule?

Aber ich würde versuchen, mit^$ zu halten und versuchen, diese Variante:

<rewrite> 
    <rules> 
     <rule name="Redirect to HTTPS" stopProcessing="false"> 
      <match url="^$" /> 
      <conditions> 
       <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
      </conditions> 
      <action type="Redirect" url="https://{SERVER_NAME}/" redirectType="Permanent" /> 
     </rule> 
    </rules> 
</rewrite> 
Verwandte Themen