読者です 読者をやめる 読者になる 読者になる

ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

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

Apache https
Sponsored Links

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 Style5