mod_rewrite for front controller

というのを書いてみた。初gist!でもtumblrはscriptタグの埋め込みはできないようになっているのね。うまいやり方ないのかな。

とりあえずWindowsでは動いたけど、404の取り扱いがやっぱりあやしい気がする。もともとは/asset以下に該当するファイルがなければ[R=404]で終わるはずだったのに、そのままスルーされてindex.phpにアクセスしていたので、それを回避するために書いてみた。

phpファイルの直接アクセスも除外したけど、

RewriteRule index.php - [QSA,L,C]
RewriteRule .* - [QSA,L]

この時点で実行されてもおかしくない気もするし。うーん。もうちょっと悩んでみる。

ちなみに、mod_rewriteがどういう挙動をしているかを追っかけるときには、ログを出してみると分かりやすい。

RewriteLog /var/log/apache2/rewrite.log
RewriteLogLevel 5

Reference

Apache2 mod_rewrite and %{REQUEST_FILENAME}