httpでのアクセスをhttpsにリダイレクトする@Apache
httpプロトコルでアクセスされたページをhttps(SSL対応)にリダイレクトさせるメモ。事前に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]
上記の内容を記述した.htaccessをSSL対応(暗号化通信)させたいコンテンツのあるディレクトリに設置します。パーミッションは644あたり、かな?(サーバによってこのへんは若干変わるかもですが)
これでこのディレクトリ配下にあるページにWebブラウザでアクセスがあると、httpでのアクセスの場合はこれが「https」にリダイレクトされ、SSLに対応した状態になります。
このやり方なら逆も(HTTPSがonの場合はhttpにリダイレクト)いけますね。
以下のページが大変わかりやすく解説されてました。 ありがとうございます。
.htaccessでHTTPアクセスをSSLでリダイレクト(逆もアリ) - hogehoge foobar Blog Style Beta