2017-02-25 7 views
0

https証明書をインストールしたばかりで、リダイレクトの設定に苦労しています。
IIS(7.5)でHTTPリダイレクトを使用しようとしましたが、最初のログインページを通過するとIEとFFとChromeで動作するようにはできませんでした。
URL書き換えも試しましたが、HTTPリダイレクトに戻ったので完全に失敗しました。HTTPSが正しく動作しないフォルダにリダイレクトする

http://example.com/internal」を使用してサイトにアクセスするために使用されたユーザー。さて、これを "https://internal.example.com/internal"にリダイレクトして、動作させることができません。可能であれば、URLの最後の「内部」を使用しない方が好きです(CSRを要求する際に使用した共通名はinternal.example.comでした)。

HTTPリダイレクトでは、「https://internal.example.com/internal/default.aspx」に「リダイレクト要求をこの宛先にリダイレクト」を設定し、「リダイレクト動作」を「このディレクトリ内のコンテンツのみに要求をリダイレクトする」にステータスコード301(Permanent)を設定します。

Webサイトには、.Netアプリケーションファイルを含む「内部」フォルダがあり、フォーム認証が必要です。ルートフォルダ内のファイルはすべてに公開されています(つまり、www.example.comはすべてに公開されています)。

これを設定するためのヘルプは、大変ありがとうございます。

更新

私はweb.configファイルを更新し、まだなく、かなりそこにいくつかのURL書き換えルールを追加しました。
IEの場合、example.com/internalと入力するとhttps://internal.example.comになりますが、http://internal.example.com/internalには入りません。
Chromeではhttpsにはアクセスせず、httpにとどまって「安全でない」と表示されます。

<rewrite> 
    <rules> 
     <rule name="Rewrite to internal" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^www.example.com$" /> 
      </conditions> 
      <action type="Redirect" url="{R:1}" /> 
     </rule> 
     <rule name="internal.example.com to sub folder internal" enabled="true" stopProcessing="true"> 
      <match url="(.*)" ignoreCase="true" /> 
      <conditions logicalGrouping="MatchAll"> 
       <add input="{HTTPS}" pattern="^OFF$" /> 
       <add input="{HTTP_HOST}" pattern="^internal\.example\.com$" ignoreCase="false" /> 
       <add input="{PATH_INFO}" pattern="^/internal($|/)" negate="true" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/" /> 
     </rule> 
    </rules> 
</rewrite> 

最初のルールは、http://example.comを通過させることです。 2番目はhttp://example.com/internalhttps://internal.example.com/internalにリダイレクトすることです。

答えて

0

IISの認証アプレットを確認してください。匿名の認証を許可する必要があります。

+0

ありがとうございました。私は "フォーム認証"に加えて "基本認証"を選択しましたが、私は匿名認証を有効にすることができませんでした。私は基本を無効にし、匿名を有効にしましたが、変更はありません。 web.configの変更に関する追加情報で質問を更新しました。 – NoBullMan

+0

Request.ServerVariables ["SERVER_NAME"]とRequest.ServerVariables ["PATH_INFO"]が自分の条件を満たしていれば、URLリライトとHTTPリダイレクトの両方を削除し、Response.RedirectをDefault.aspx.csのResponse.Redirectを使って追加することにしました。リダイレクション。すべてのブラウザで正常に動作します。 – NoBullMan

+0

私はプロジェクトで同様の設定をしています。匿名認証をセットアップし、他のすべての認証を無効にしてから、ポート80のすべてのトラフィックをウェブ設定の書き換えを使用して443にリダイレクトしてください。 –

関連する問題