ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

httpでのアクセスをhttpsにリダイレクトする@Apache

httpプロトコルでアクセスされたページをhttpsSSL対応)にリダイレクトさせるメモ。事前にSSL証明書の購入や設定が済んでいる前提で。

環境変数HTTPS」や「SERVER_PORT」を利用する方法があるようですが、今回は前者を使います。

設定は.htaccessで、リダイレクトさせるのでmod_rewriteモジュールも必要です。(なのでWebサーバはApacheです)

RewriteCondで環境変数HTTPSの値を判定し、これがoffの場合は「https」にリダイレクトさせます。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

上記の内容を記述した.htaccessSSL対応(暗号化通信)させたいコンテンツのあるディレクトリに設置します。パーミッションは644あたり、かな?(サーバによってこのへんは若干変わるかもですが)

これでこのディレクトリ配下にあるページにWebブラウザでアクセスがあると、httpでのアクセスの場合はこれが「https」にリダイレクトされ、SSLに対応した状態になります。

このやり方なら逆も(HTTPSがonの場合はhttpにリダイレクト)いけますね。

以下のページが大変わかりやすく解説されてました。 ありがとうございます。

.htaccessでHTTPアクセスをSSLでリダイレクト(逆もアリ) - hogehoge foobar Blog Style Beta