Ubuntu インストールで index.php をデフォルト ファイルとして使用する必要があります。
追加した
DirectoryIndex index.php
/etc/apache2/apache2.conf へ
追加した
<Directory /path/to/website/root/>
DirectoryIndex index.php
</Directory>
/etc/apache2/sites-available/mysite.conf に記述し、有効化して再起動する
sudo a2ensite mysite
sudo service apache2 restart
何を見逃したのでしょうか? それでも、サーバーはデフォルトのファイルを読み込みません。
注: DirectoryIndex index.php
.htaccess に追加すると目的の効果が得られますが、.conf ファイル経由でこれを行うことをお勧めします。
答え1
DirectoryIndex はどこに置きましたか? .htaccess にそれを追加することは、次のステートメントを置くことと同じです:
<Directory /path/to/htaccess/file/>
DirectoryIndex index.php
</Directory>
DirectoryIndex の周囲にディレクトリ ステートメントを追加してみてください。少しハックっぽいですが、おそらく機能するでしょう。それでも機能しない場合は、vhost 構成全体など、さらに多くの構成を提供してください。
答え2
今日、ほぼデフォルトの Apache 設定で、SLES 11 SP4 の Apache 2.2 で同様の問題が発生しました。問題は、URL で明示的に呼び出されない場合、Apache が既存の index.html ファイルを無視することでした。例: server.domain.tld/dir/
ただし、明示的なファイルで呼び出された場合は、コンテンツが提供されます。例: server.domain.tld/dir/index.hmtl 。したがって、ファイルシステムの権限に問題はありませんでした。htdocs の下にあるすべてのファイルは、グループ OTHERS に対して十分な権限を持っていました。ただし、当時のすべての htdocs ファイルは root.root によって所有されていました。したがって、この「モード」では、Apache は URL に記載されていない場合は index.html を提供しませんでした。
権限自体を変更せずに、htdocs ディレクトリとファイルを SLES (suse linux enterprise Server) の「デフォルト」である所有者「wwwrun.www」に再帰的に戻した瞬間、Apache は通常どおりに index.html を再び提供し始めました。再起動も何も必要ありません。
これがバグなのか機能なのかはわかりません。私たちが経験したことと、その問題を解決した方法をお知らせしたいだけです。
したがって、htdocs ファイルの所有権を確認し、Web サーバーのサービス アカウントとグループによって所有されていることを確認してください。
答え3
代わりに location ディレクティブを使用してみてください。
<Location /path/to/htaccess/file/>
DirectoryIndex index.php
</Location>