178

HTTPSをHTTPにリダイレクトするにはどうすればよいですか。つまり、(一見)誰もが教えていることの反対です。

私は、SSL認証を支払ったHTTPS上のサーバーと、私が支払っていないミラーを持っており、緊急事態のためだけに保管しているので、認証を取得する価値はありません。

クライアントのデスクトップには、とを指すショートカットがいくつかありますhttp://production_serverhttps://production_server両方とも機能します)。ただし、本番サーバーがダウンすると、DNS転送が開始され、ショートカットに「https」が付いているクライアントが見つめられhttps://mirror_server(機能しません)、不安の大きな太ったInternetExplorer7の赤い画面が表示されます。私の会社のために。

残念ながら、これをクライアントレベルで切り替えることはできません。これらのユーザーは非常にコンピューターの知識がなく、HTTPSの「セキュリティ不安」エラー(特にFirefox3とInternetExplorer 7が最近それを処理する方法:フルストップ、ありがたいことに、ここでは私を助けてくれません)を目にすることからびっくりする可能性が非常に高いです。

http-> httpsリダイレクト用のApacheソリューションを見つけるのは非常に簡単 ですが、私の人生では、その逆を行うことはできません。

アイデア?

4

11 に答える 11

136

これはテストされていませんが、mod_rewriteを使用して機能するはずです。

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
于 2008-08-12T00:48:49.577 に答える
79

リライトエンジンは、HTTPリクエストが受信された後にのみ起動することに注意してください。つまり、クライアントがリクエストを送信するための接続を設定するには、証明書が必要です。

ただし、バックアップマシンが(クライアントに関する限り)同じホスト名を持っているように見える場合は、メインの本番マシンと同じ証明書を使用できない理由はありません。

于 2008-08-12T03:06:10.237 に答える
12

.confファイルをご利用の方へ。

<VirtualHost *:443>
    ServerName domain.com
    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/domain.crt
    SSLCertificateKeyFile /etc/apache2/ssl/domain.key
    SSLCACertificateFile /etc/apache2/ssl/domain.crt

</VirtualHost>
于 2015-12-01T18:50:39.153 に答える
12

ejunker's answer に基づいて、これは単一のサーバーではなくクラウド環境で機能するソリューションです

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{ENV:HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
于 2013-01-24T08:32:49.343 に答える
10

上記の解決策のどれもあなたのために機能しない場合(それらは私のために機能しませんでした)、これが私のサーバーで機能したものです:

RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]
于 2013-02-21T00:27:08.423 に答える
-7

私が知っている限り、単純なメタリフレッシュもエラーを引き起こすことなく機能します:

<meta http-equiv="refresh" content="0;URL='http://www.yourdomain.com/path'">
于 2012-09-03T07:06:09.573 に答える