2016-11-30 7 views
1

私はIIS 8.5 Webサーバー上の特定のサブフォルダに対してHTTPからHTTPSに書き換えようとしていますが、機能しません。無数の他のソリューションやブログ投稿を読んだことがありますが、私が試したことはありません。サブフォルダのみをリライトする(HTTPからHTTPS)サイトルートにリダイレクト

http://domain.example.com/one/two/three/
...に(同じURLをしかし、HTTPSを使用して)リダイレクト
https://domain.example.com/one/two/three/

代わりに...(HTTPSを使用して、サイトのルート)にリダイレクトされなければならない
https://domain.example.com

搭載。 ..(httpsを使用するURL)
https://domain.example.com/one/two/three/
もリダイレクト先となります(httpsを使用したサイトルート)
https://domain.example.com

URLからサブフォルダを削除しています。

このフォルダもWindows認証で保護する必要がありますが、動作させることはできますが、認証が有効または無効になっているためhttpsリダイレクトが失敗しているため、原因とは思われません。

IIS内で、目的のサブフォルダ(上記の例では/ three /)を選択し、そこに書き換えルールを作成しました。

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

これはもちろん、目的のサブフォルダに含まれるファイルとフォルダで動作するはずです。 (/ 3)

私はこれを試してみましたが、それは見かけの正しいURLにリダイレクトしますが、「あまりにも多くのリダイレクト」エラーを与える:

<rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="SeeOther" /> 
</rule> 

答えて

0

あなたがこれを行うことは避けるべきです:

代わり

Within IIS I selected the desired subfolder (/three/ in the example above) and created the Rewrite rule there.

アプリケーションルートのWeb.configに書き換えルールを設定します。次のようにmatchパラメータに含めてHTTPSに特定のフォルダをリダイレクトすることができます

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Redirect Subfolder" stopProcessing="true"> 
        <match url="^one/two/three/" /> 
        <conditions logicalGrouping="MatchAll"> 
         <add input="{HTTPS}" pattern="^OFF$" /> 
        </conditions> 
        <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

を、これはあなたが探しているものを行い、最小限のWeb.configファイルであることに注意してください。アプリケーションにすでにルートフォルダにWeb.configが含まれている場合は、上記をソリューションにマージする必要があります。

関連する問題