opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

apacheでhttp->httpsへのリダイレクト

apacheでhttp->httpsにリダイレクトするには次のようにすればいいらしいのでメモ。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteLog "/var/log/http-rewrite.log"
    RewriteLogLevel 0
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
</IfModule>

上の3行はログやらONやらの設定であるため、実際にリダイレクトの記述は最後の2行である。
ちなみに、書いてるからわかる通り、これを利用するには次のようにmodをロードする必要がある。
例えば次のような感じの記述を冒頭にする。末尾がOSによって異なると思う。

LoadModule rewrite_module libexec/apache22/mod_rewrite.so

また、上記の

RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

の"R=301"で301なリダイレクトを利用することを指定している。
指定しなければ自動で302になるようだ。
ちなみに、http->httpsのリダイレクトに関して301にすべきか302にすべきかはよくわからない。
もしかしたら場合によるかも知れないし明確にどちらにすべきというのがあるかもしれない。
とりあえず、以上のようにして変えれるっぽい。

参考

http://www.aconus.com/~oyaji/tips/apache_tips1.htm
http://d.hatena.ne.jp/kiririmode/20081215/p1

Firefox ブラウザ無料ダウンロード