user_dirの下でmod_rewriteを使いたい時
user_dirはMacだったら$HOME/Siteの下みたいなところ、Linuxだとpublic_htmlみたいなやつ
この下でmod_rewriteすると変なことが起きる。
例えばこんな.htaccessをuser_dirの下に置くと
RewriteEngine on RewriteRule ^(.*)$ index.php/$1 [L]
↓みたいなリクエストがきたら
hogehoge.com/fuga
↓みたいに書き換えることを期待してるんだけど
hogehoge.com/index.php/fuga
この状態でアクセスすると、↓みたいな感じのエラーが出る
The requested URL /Users/nab/Sites/index.php/fuga was not found on this server.
user_dirのモジュールがurlをlocalのパスに書き換えちゃうみたい。RewriteBaseを追加したら解決した。
RewriteEngine on RewriteBase /~nab/ RewriteRule ^(.*)$ index.php/$1 [L]