147

サイトのHTTP://バージョンへのすべての試行をHTTPS://に相当するものにリダイレクトするクリーンな方法はありますか?

4

6 に答える 6

178

ここ IIS-aid.com で説明されている方法が最もクリーンな方法だと思います。これは web.config のみであるため、サーバーを変更した場合、403.4 カスタム エラー ページやその他の特別なアクセス許可で行ったすべての手順を覚えておく必要はありません。

<configuration>
  <system.webServer>
    <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="Permanent" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
于 2011-09-30T02:12:43.863 に答える
14

私が見つけた最も簡単でクリーンな解決策は、

  1. SSL設定で-> SSLが必要

  2. エラー ページ -> 403.4 エラー時 -> HTTPS サイトにリダイレクト

  3. エラー ページ -> 機能設定の編集... -> ローカル リクエストの詳細なエラーとリモート リクエストのカスタム エラー ページの設定

利点は、追加のコード行を必要としないことです。欠点は、絶対 URL にリダイレクトされることです。

于 2016-07-14T08:31:30.860 に答える
0

私は従来のASP(イントラネット)を使用しており、ログインが必要なページでは、ログオンインクルードファイルがリダイレクトを行います:

if Request.ServerVariables("SERVER_PORT_SECURE") <> "1" or Request.ServerVariables("HTTPS") <> "on" then 
    Response.Redirect "https://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
end if

もちろん、これには GET または POST データは含まれません。したがって、実際には、保護されたページへのクリーンなリダイレクトです。

于 2018-12-11T13:46:20.640 に答える
-4

「きれいに」とは、300リダイレクトのように意味すると思います。ここで多くのサーバーと言語を設定します。

于 2008-09-05T17:56:34.253 に答える