訂正
サーバーコンフィグ内で
<Location />
RewriteEngine On
...
</Location>
こんな感じでLocationに RewriteEngine On
書いていたのが原因だった模様。
除去したら通常通り動きました。
この状態で下記のようにVirtualHost内に RewriteOptions Inherit
を書くと、ドキュメントルート内の.htaccessがLocation内に書いてあるのと同じような挙動をするようになってしまう。
RewriteRule (.*)index\.html test.html_$1 [R,L]
とかかいて実験してみた。
/index.html
にアクセスすると、 /test.html_/var/www/html
にリダイレクトした。要注意。
Locationディレクティブにリダイレクトを書くのはやめましょうということですね。
tldr;
<VirtualHost>
セクション内に
RewriteEngine On
RewriteOptions Inherit
を記述すること。
解説
apache2.2では上記の記述がなくてもいいっぽい。(試してない)
<Directory>
セクションを別の場所で書いていて、そこでAllowOverride Allをしていた場合にはまることがある。
参考