仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

DirectoryIndexのファイル有無

ファイルがなければリダイレクトというよくある処理。
でも、DirectoryIndexでファイル名がとれないアクセスをどうすればいいのか小一時間悩んだ。

Options +FollowSymLinks
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ http://example.com/ [R=301,L]
</IfModule>

ちゃんとマニュアルに↓のような機能が用意されていた。

サブリクエストを実行して変数の最終値を決定する特別な書式%{LA-U:変数}があります。

Options +FollowSymLinks
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{LA-U:REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ http://example.com/ [R=301,L]
</IfModule>

無事に解決。
よくよく動作確認してたら、ぜんぜんダメだった……。
ちゃんとmod_rewriteの動作をおってみる。