はじめに

ディレクトリのindexファイル(「index.html」など)をDirectoryIndexディレクティブで指定している場合、ディレクトリへアクセスするとindexファイルの内容が返されますが、その一方でindexファイルに対しても直接アクセスできてしまい、結果的に同じコンテンツを返すURLが2つ存在してしまいます。

この状態はコンテンツの管理上あまりよい設計とは言えず、2つのURLをなるべく短い方(=ディレクトリの方)に揃えることが望ましいです。

このページでは、このindexファイルへの直接アクセスをディレクトリにリダイレクトする方法について説明します。

RewriteEngineの利用

indexファイルへのアクセスをディレクトリにリダイレクトし、尚且つディレクトリへのアクセス時にindexファイルの中身を返すには、RewriteEngineを利用します。
(DirectoryIndexとRedirectMatchディレクティブの組み合わせではうまくいかないので、注意してください。)

「httpd.conf」の設定の例
DirectoryIndex index.html

RewriteEngine On
RewriteRule ^(.*)/index.html$ https://www.kishiro.com$1/ [R=301,L]

上記の通り設定が完了したら、設定を反映させるためにapacheを再起動させます。
apacheの再起動方法については、「コマンドラインからapacheを起動/停止/再起動する」を参照してください。

これにより、任意のディレクトリ内の「index.html」へアクセスした際に、そのディレクトリへのリダイレクト(HTTP 301 Moved Permanently)として返します。


あなたの探し物は見つかりましたか?
まさにこれだ
参考になった
ちょっと違う
これじゃない

何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まさにこれだ
2 (67%)
参考になった
1 (33%)

表示できるメッセージはありません。