apache2.4 httpsでhtaccessを有効化するときハマった


訂正

サーバーコンフィグ内で

<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をしていた場合にはまることがある。

参考