1

サイトと、同じサーバーでホストされているサイトのテスト バージョンがあります。テスト バージョンではなく、ライブ バージョンで ssl を使用する必要があります。次のコードを使用して、テスト用ではなくライブ用に SSL を適用します。

 If HttpContext.Current.Request.IsSecureConnection.Equals(False) AndAlso HttpContext.Current.Request.IsLocal.Equals(False) AndAlso HttpContext.Current.Request.RawUrl.Contains("test.mydomain.com") = False Then

            Response.Redirect("https://" + Request.ServerVariables("HTTP_HOST") + HttpContext.Current.Request.RawUrl)
        End If

サイトのライブ バージョンはlive.mydomain.comです。

私が得た結果は、 test.mydomain.com へのすべてのリクエストがlive.mydomain.comに送られるということです。これがどのように可能かわかりません。ブラウザは実際にはアドレス フィールドにtest.mydomain.comを表示しますが、明らかにライブ バージョンを使用しています。test.mydomain.comの SSL バインディングはありません。私はこれに数日を費やしましたが、誰かが私のコードの何が問題なのか、または他に何を試すことができるのかを知っているかどうか疑問に思っていました.

よろしくお願いします

4

1 に答える 1

3

これは、 IIS7 URL Rewrite モジュールを使用して URL を書き換えることにより、IIS で (アプリケーションのコードなしで) 行うことができます。

これは、この種のことに非常に役立つリソースです: http://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/

やりたいことは(3)と(4)の組み合わせです。

したがって、リクエストが HTTPS で着信しておらず、かつホスト名が live.domain.com である場合は、HTTPS にリダイレクトされます。

このようなもの:

<rule name="Redirect to HTTPS" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTPS}" pattern="^OFF$" />
    <add input="{HTTP_HOST}" negate="true" pattern="live\.mydomain\.com$" /> 
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
于 2013-10-22T10:44:04.427 に答える