.htaccessでmod_rewriteを使って転送してるつもりが、
404エラーになってしまう。
Apacheのエラーログ(error_log)では、「File does not exist:」が
でてる状態なわけです。
こんな現象とちょっと戯れたので、メモしとく。
.htaccessの内容は以下。
## リライトエンジンを有効に。
RewriteEngine On
## リライトの対象パスを指定
RewriteBase /
## リライトルールを宣言(条件・アクセス先)
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
まあ、これで普通はmod_rewriteによって、該当領域にきたアクセスで
RewriteRuleで指定されている画像など以外のものは、
すべてindex.phpにアクセスされるようになるはずなんですね。
ここで大きな落とし穴がありました。
.htaccessの書き方が問題なくても、
そもそも.htaccessを有効にしてない場合があるわけです。
Apacheのhttpd.confに「AllowOverride」って項目があるわけです。
これが「None」とかになってると、.htaccessが利用できないです。
これは、サーバ管理者にお願いする形になっちゃうんでしょうけど、
修正するしかないですね。
ZendFrameworkのおすすめ書籍