apacheで、DirectoryIndexに設定したファイルが正常に読み込まれない時の対処


はじめに

開発環境

MAMP

DirectoryIndexに設定したファイルが読み込まれない

httpd.confファイルの一番下の行に、次のようにコードを追加します。

Alias /apache "/Applications/MAMP/htdocs/fullstack-webdev/070_Apacheの基礎/"

<Directory "/Applications/MAMP/htdocs/fullstack-webdev/070_Apacheの基礎/">
    DirectoryIndex file1.html
</Directory>

Aliasによって、 /apacheに

 "/Applications/MAMP/htdocs/fullstack-webdev/070_Apacheの基礎/"

のパスを対応させます。

すると、MAMPのサーバーをリセットしてwebページを立ち上げ、URLに

http://localhost:(ポート番号)/apache

と入力すると、「070_Apacheの基礎」ディレクトリ内のindex.htmlあるいはindex.phpがページに読み込まれます。

ですが、ここで

<Directory "/Applications/MAMP/htdocs/fullstack-webdev/070_Apacheの基礎/dir-test">
    DirectoryIndex file1.html
</Directory>

によって、 さっきと同様

http://localhost:(ポート番号)/apache

をURLに入力すると、

・もし「070_Apacheの基礎」ディレクトリ直下にindex1.htmlがあればそれが開く
・もし「070_Apacheの基礎」ディレクトリ直下にindex1.htmlがなければ「070_Apacheの基礎」ディレクトリ直下のディレクトリやファイルの一覧が表示される

というどちらかの処理に変わります。
これは、デフォルトではDirectoryIndexがindex.htmlやindex.phpを読み込む設定になっているものを、

DirectoryIndex file1.html

によってindex1.htmlを読み込むという命令に変更しているからです。

ここで、たまにこのDirectoryIndexにあたらめて設定したファイル(今回はindex1.html)がちゃんと読み込まれず、デフォルトのindex.htmlやindex.phpを読み込んでしまうことがありました。

対処法

大した方法ではないですが、自分の場合

一度index1.htmlを開いて中のソースを変更して元に戻してしてあげたら

その後サーバーをリセットしたときに正常に読み込むようになりました。

すみません、それだけです。一応備忘録として記事にしました。