2012-01-17 3 views
13

私は自動的にHTTPSにトラフィックを送信するweb.configファイルを持っています。しかし、誰かがMyDomain.comに入力した場合はhttps://mydomain.comになり、www.mydomain.comに入るとhttps://www.mydomain.comになります。Web.config。すべてのトラフィックをwww.myにリダイレクトします... rules要素を使用します。

すべてのトラフィックをhttps://www.mydomain.comに移動します。これはweb.configのrules要素を使用して可能ですか?私のファイルは、現在、次のようになります。

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

+0

誰でも?また、IIS GUIを使用する方法についてのアドバイスも同様に優れています。 – Paul

答えて

23

の規則規則の

<rule name="Redirect to www subdomain"> 

    <match url=".*" /> 

    <conditions logicalGrouping="MatchAll"> 
    <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" negate="true" /> 
    <add input="{SERVER_PROTOCOL}" pattern="^(.*)(/.*)?$"/> 
    </conditions> 

    <action type="Redirect" url="{C:1}://www.{HTTP_HOST}/{R:0}" redirectType="Permanent"/> 

</rule> 

説明

  • <match />は、そのパスとクエリ文字列の一致のみの要求にルールを制限します与えられたパターンここでは、ドメインに基づいてリダイレクトするため、すべてのパスとクエリ文字列を一致させたいと考えています。

  • <conditions />ルールを、指定された条件を満たす一致したリクエストだけに制限します。最初の条件は、ドメインがすでに "www"で始まっている要求を除外します。 2番目の条件は{C:1}の逆参照のためのもので、何もフィルタリングしないでください。

  • <action>の先頭に「www。」が付いています。ドメインにリダイレクトします。

変数

  • {R:0}<match \>タグから完全一致する後方参照です。バックリファレンスには、パスとクエリ文字列のみが含まれている必要があります。これは、<match \>がこれと完全に一致するためです。

  • {C:1}は、最終条件からの最初のマッチグループの逆参照です。これには、{SERVER_PROTOCOL}変数に "/"までのすべてが含まれている必要があります。

  • {HTTP_HOST}は、要求されたドメインを含むサーバー変数です。 (完全なリストについては、hereを参照してください。)

  • {SERVER_PROTOCOL}別のサーバ変数。そのフォーマットは "{protocol}/{version number}"でなければなりません。

その他のオプション

  • <action redirectType>が見つかり、一時的またはSeeOtherことができます。 (詳細はhereを参照してください)

  • <conditions logicalGrouping>はMatchAllまたはMatchAnyです。

より完全な説明については結論

hereを参照してください。

+0

そのルールを追加するか、ポスターを置き換えますか? –

+0

ありがとう!私はあなたがこれをいかに保つことができるか尋ねるだろう、チャンピオンサルのようなリダイレクト!ドメインが含まれている場合: "bypdm.com"はリダイレクトされません。これはクライアントを表示するために使用する一時URLであり、IISでwwwが設定されていませんか? – Tim

+3

301 redirectType = "Permanent"を301リダイレクトにしたくないですか? – ajbeaven

関連する問題