mod_rewriteで存在しない静的ファイルを404にする方法
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