index.php
ファイルがあります。このファイルは、それが置かれているディレクトリのコンテンツを処理し、ブラウザに出力をレンダリングします。
問題は、サービスが提供されるはずのディレクトリ構造がかなり複雑で、多くのディレクトリとサブディレクトリがあることです。 index.php
のコピーをすべてのサブディレクトリに配置する気はありません。
それらをサポートするシステムでシンボリックリンクを使用できることは知っていますが、階層全体を横断して、他にシンボリックリンクが存在しない場合は、問題のインデックスファイルへのリンクを配置するのは人間の仕事ではありません。また、すべてのシステムが実際にシンボリックリンクをサポートしているわけではありません。
要求されたディレクトリにインデックスファイルが存在しない場合、指定されたindex.php
を使用する必要があることをWebサーバー(Apache、nginx、..)に伝える方法はありますか?
私はあなたが何を求めているのか理解していますが、すべてのディレクトリにindex.phpファイルが必要な理由を理解することはできません(典型的なPHPアプリケーションのプログラミング慣行に従っている場合)。
すべてのサブディレクトリからルートindex.phpファイルを参照する必要がある場合、サーバーレベルでmod_rewriteが最も簡単な方法です。これはサーバーに依存しませんが、質問するかもしれませんが、サーバーが常にindex.phpファイルを参照するようにする方法の例については、この記事を参照してください: https://stackoverflow.com/questions/8595964/redirect-all-traffic-to-index-php-using-mod-rewrite
ドキュメントルートの下のディレクトリにインデックスファイルが存在しない場合、指定された
index.php
を使用する必要があることをWebサーバー(Apache、nginx、..)に伝える方法はありますか?
はい、Apacheでは、Apache構成(または.htaccessファイル)のDirectoryIndex
ディレクティブでこれを制御できます。例えば:
DirectoryIndex index.php /index.php
ファイルシステムディレクトリをリクエストするとき、これはそのディレクトリ内のindex.php
が存在する場合はそれを提供し、そうでなければ/index.php
が提供されます(ドキュメントルートのindex.php
)。
Nginxには、単にindex
と呼ばれる同様のディレクティブがあるようです。
参照: https://serverfault.com/a/402949/49157