2016-12-07 18 views
1

このルールは正常に機能しているようですが、https://www.example.comに行くとwwwは削除されません。wwwをリダイレクトして削除してhttpsを追加します

ただし、私がhttp://www.example.comに行くと、期待どおりに動作します。

なぜhttpsからリダイレクトされませんか?

<rewrite> 
    <rules> 
    <rule name="Remove WWW" stopProcessing="true"> 
     <match url="^(.*)$"/> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$"/> 
     </conditions> 
     <action type="Redirect" url="https://example.com{PATH_INFO}" redirectType="Permanent"/> 
    </rule> 
    </rules> 
</rewrite> 
+0

このルールは実際に私のために働いた。 HTTPとHTTPSの両方のURLが同じWebサイトにバインドされていますか?異なる場合は、このルールをHTTPSサイトに追加する必要があります。 – dana

答えて

1

上記の私のコメントによれば、あなたのルールは、あなたが記述したシナリオで実際に私のために働いていました。しかし、ホスト名にwwwが含まれていない不安定なURLが要求された場合は、そのURLを処理するとは思われません。たとえば、http://example.com/blah/はリダイレクトされません。以下、次のルールは同様にそのケースを扱う:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Remove WWW and Ensure HTTPS" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions logicalGrouping="MatchAny"> 
         <add input="{HTTP_HOST}" pattern="^(www\.)" /> 
         <add input="{HTTPS}" pattern="^OFF$" /> 
        </conditions> 
        <action type="Redirect" url="https://example.com{REQUEST_URI}" redirectType="Permanent" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

ルールチェックwwwまたは安全でない要求で始まるホスト名。いずれかの条件が満たされると、ユーザーはリダイレクトされます。

+0

したがって、リダイレクトの前に認証認証が最初に行われるように見えるので、wwwサブドメインは証明書に含まれません。だから私は、リダイレクトが発生する前に証明書の警告を取得し、私はそれについて何もできないように見えます。 – prospector

+0

興味深い...私が通常使用したSSL証明書には、wwwサブドメインが含まれています。 – dana

+0

そうですね、それは問題なのですが、それはマルチドメイン証明書であり、明らかにそれはそれらの状況ではありません。 – prospector

関連する問題