apache2.4 でのmod_rewriteの挙動について

apache2.4 でのmod_rewriteを使用すると「index.html」が付与される

「.htaccess」でmod_rewriteを使用して、URLの書き換え・リダイレクト処理をおこなったときの挙動が、Apache2.2系とApache 2.4系では挙動が異なります。

この設定でブラウザでアクセスすると mod_rewrite の設定が効いて「http://example/data/index.html」に転送されます。
以前のApache 2.2系だと「http://example/data/」に転送がかかります。
Apache 2.4系だと「index.html」が付与され「http://example/data/index.html」に転送されます

ブラウザでは、以下のようにエラーになります

自動で「index.html」を付与しない場合は「DirectoryCheckHandler  on」と設定すれば良いのですが、Apache2.48以降しか対応していないのでCent OS 7のyumでインストールすると、httpd 2.46となりこのオプションは使えません

参考URL:Apache Module mod_dir

自動で「index.html」が付与されても問題がない場合は多いですが、トップページが「index.html」がなく「index.php」の場合はトップページに「index.html」が付与されるとサイトが見れなくなります

DirectoryCheckHandler 」を使えるApcahe 2.48以降なら問題があれば、使えない場合か以下のように「DirectoryIndex」と空で設定すれば、「index.html」が付与されずにリライトが効き、index.phpにアクセスできます

 

 

スポンサーリンク

LinuxCentOS 7

Posted by admin