IEでリクエストするとrewriteが効かない
という不思議な現象に遭遇。
mod_rewriteを利用したこんな設定があります。
<IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} .* RewriteRule https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>
当該設定がある仮想ホスト名を hoge.example.com とすると、
http://hoge.example.com/fuga を https://hoge.example.com/fuga
へリダイレクトするってことです。
FirefoxやChromeだと期待通りの動作をするのですが、なぜかIEだと404を返してくる。
当該仮想ホストにはこの設定以外にはDocumentRootやServerNameなどのディレクションしかありません。
どうやら RewriteCondにひっかからないで、DocumentRoot以下を参照している模様。
リクエストされているURIは fuga/hoge.php?page=2 と行った感じのphpプログラムなんですが、なんで%{REQUEST_URI}にひっかからないのかがわからない。
なやんでいても仕方ないので以下に変更。
Redirect / https://hoge.example.com/
なぞだ。".*"とか、"^.*$"とかって書かないといけないとか?
こんど実験してみよ。