この記事について
| 環境 | apache |
|---|---|
| 目的 | .htaccess に書いた RewriteRule を効かせる |
| 結果 | httpd.conf の AllowOverride None を ALL にして解決 |
つまずきポイント要約
- mod_rewrite が有効でも、AllowOverride None だと .htaccess 自体が無視される
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 を再起動して、リダイレクトできるようになった。
