URL を rewrite したくて .htaccess に RewriteRule を記述したが、うまくいかない事態に陥る。解決するために確認したことの覚書。
1.mod_rewrite は有効になっているか
mod_rewriteはApacheのモジュール。mod_rewriteを利用することでURLの書き換えやリダイレクトを指定することができる。
有効になっているかの確認
$ httpd -M | grep rewrite
~中略~
rewrite_module (shared)
rewrite_module があることを確認。つまり有効になっているので別の原因を探る。
2..htaccess の設定は有効になっているか
.htaccess が使える設定でないと当然 rewrite できない。
確認する場所は httpd.conf 内の「AllowOverride」の部分。
~中略~
AllowOverride None
AllowOverride ディレクティブが None。
これでは設定を上書きできないので、次のように書き換える。
AllowOverride ALL
apache を再起動して、リダイレクトできるようになった。