2015-12-15 18 views
5

私はexample.com/project1example.com/project2のようなサブサイトを保持しているサイトexample.orgをいくつか持っています。一部のサブサイトで単純なHTTP→HTTPSリダイレクトが必要ですが、手動でコードファイルに書き込むことは望ましくありません。IIS URLリライト:HTTPからHTTPSへ

だから私は彼のためにURL-Rewrite2モジュールとルールを見つけました:

<rewrite> 
     <rules> 
      <rule name="Redirect to HTTPS" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTPS}" pattern="^OFF$" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
      </rule> 
     </rules> 
     </rewrite> 

それは一つの問題で、最大で動作します。それはhttp://example.com/project1からhttps://example.com/にリダイレクトするので、サブサイトのURLの一部と任意の引数のを失いました。

これはどのように修正できますか?

UPD:使用このルール

<rule name="Redirect to HTTPS" stopProcessing="true"> 
         <match url="(.*)" /> 
         <conditions> 
          <add input="{HTTPS}" pattern="^OFF$" /> 
         </conditions> 
         <action type="Redirect" url="https://{HTTP_HOST}{UNENCODED_URL}" /> 
</rule> 

サブサイトは、引数が複製されることを除いて正常にリダイレクトします。 http://example.com/project1?page=2https://example.com/project1?page=2&page=2になります。私は間違っているの?

答えて

3

は、このルールを使用して行わ:

<system.webServer> 
    <rewrite> 
      <rules> 
       <rule name="Redirect to HTTPS" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTPS}" pattern="^OFF$" /> 
        </conditions> 
        <action type="Redirect" url="https://{HTTP_HOST}{UNENCODED_URL}" appendQueryString="false" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
サブサイト上の良い作品

0
<rewrite> 
    <rules> 
      <rule name="Redirect to http" 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="Found" /> 
      </rule> 
     </rules> 

system.webserverセクション

にそれを追加