http://example.com/user/temp/ にアクセスすると
http://example.com/user/index.html を表示させたかったので、.htaccessに以下追加してた。

1
2
3
4
RewriteEngine On
RewriteBase /user/

RewriteRule /.html index.html

しかし、結果は404エラー。調べるとapacheのMultiViewが有効になっていた。

参照URL: Minase’s Blog - FYA - mod_rewrite MultiViews

で、調べてみると・・・

1
http://example.com/user/temp.tt

temp.[拡張子] を置いてると、MultiViewが働き、temp.[拡張子] を表示しようとする。

しかし該当ファイルはWEBで表示出来ないため、404エラーとなっていた。

これを回避するために、どちらか設定。

  1. .htaccess 、またはapacheのconfファイルでMultiViewの機能をoffにする。
  2. mod_rewriteで定義しているファイル名をRewriteBaseの下に置かない。

これで、意図した動作になった。

今回は、.htaccessでMultiViewを無効にすることにより無事解決しました。

1
Options -MultiViews