2016-05-04 11 views
1

私は、http入るだけで、ユーザーのリダイレクトしようとしています://site.domain.com httpsに://site.domain.comIISリライト - 1つのホスト名のルートのみをHTTPSにリダイレクトしますか?

その他のHTTPページがhttps(例:http://site.domain.com/page2)にリダイレクトするべきではありませんが

私は、このアプローチを試してみました:

<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> 

しかし、誰リダイレクトが発生していない:

<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> 

それとも、この1。何か不足していますか?

答えて

1

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

しかし、私は^ $に固執し、このバリアントを試してみてくださいう:

<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>