2017-09-04 13 views
0

IISでホストされているWebサイトに対してHTTPSを強制する2つの異なる書き換えルールが見つかりました。私はこのルールを使用するAzure App Serviceでホストされるサイトを持っています。IIS書き換えルール

オプション1:

<rewrite> 
    <rules> 
    <rule name="Force HTTPS" enabled="true"> 
     <match url="(.*)" ignoreCase="false" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="off" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
    </rule> 
    </rules> 
</rewrite> 

はオプション2:

<rewrite> 
    <rules> 
    <rule name="Redirect to https"> 
     <match url="(.*)"/> 
     <conditions> 
     <add input="{HTTPS}" pattern="Off"/> 
     <add input="{REQUEST_METHOD}" pattern="^get$|^head$" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent"/> 
    </rule> 
    </rules> 
</rewrite> 

質問:

  1. ignoreCaseは、オプション1でfalseに設定した理由は何ですか?
  2. REQUEST_METHOD入力はオプション2のセキュリティをGETとHEADだけに制限しますか?
  3. appendQueryString = "true"はリダイレクト時にクエリ文字列を保持しますか?
  4. これ以外にも考慮するオプションはありますか?

答えて

0

私は、公式ドキュメントを読んでお勧めします:あなたはそれがすべて解明属性見つけることができます

https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

  • ignoreCase - この属性を使用して、条件のパターンマッチングで大文字と小文字を区別するかどうかを制御します。

  • appendQueryString - 置換中に現在のURLのクエリ文字列を保存するかどうかを指定します。既定では、AppendQueryStringフラグが指定されていない場合、TRUEとみなされます。つまり、元のURLのクエリ文字列が置換されたURLに追加されます。

+0

ありがとうございます。 REQUEST_METHOD条件が何をするかについての考え方はありますか?リダイレクトがGET要求とHEAD要求に制限されているようです。 – Josh

+0

Http_Methodには制限があります(http_methodが取得するときにリダイレクトするだけです)、私は最初のオプションが優れていると思います。 – aloji

関連する問題