mod_rewriteを使用して、Ubuntu Server 12.04でApache 2.2.22を使用してHTTPリクエストをHTTPSにリダイレクトする際に問題が発生しました。次のようにApacheを使用したHTTPからHTTPSへのリダイレクト
私は/ etc/apache2の/サイト利用可能/デフォルトのファイルは、次のとおりです。
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
HTTPSのホストが同じディレクトリにデフォルト-SSLで定義されています。
サーバーのローカルIPアドレスにアクセスすると、リダイレクトが正しく動作するように見えます。ただし、FQDN経由でアクセスすると、FQDNにはアクセスできません。 FQDNを使用すると、サイトはファイアウォールでサーバーの443にマップされているポート5443から使用できます。そのため、おそらく問題に関連するものがあります。別のサーバーがこのIPアドレスで使用しているので、ポート443を直接使用することはできません。さらに、次のことを明確にする
は、有効なリンクです:
https://website:5443
https://192.168.200.80:443
リダイレクトがここに動作します:
http://192.168.200.80
しかし、以下は400不正な要求を与え、そしてリダイレクトが必要とされている場所です:
http://website:5443/
"あなたのブラウザは、このサーバが理解できなかった要求を送信しました。 理由:SSL対応のサーバーポートに対してプレーンなHTTPを使用しています。 代わりにこのURLにアクセスするにはHTTPSスキームを使用してください。 "
これは多分あなたががそれの理由を持って、簡単なことを行うには長い道のりのように思えます。いずれの場合でも、mod_proxy:http://httpd.apache.org/docs/2.0/mod/mod_proxy.htmlとこの相対的な質問と一緒にチェックしてください。http://stackoverflow.com/questions/1162375/apache-port -proxy。 –