J'ai un fichier index.php
, qui traite le contenu d'un répertoire dans lequel il se trouve et restitue la sortie dans le navigateur.
Le problème est que la structure de répertoire qu’elle est supposée servir est plutôt complexe, avec de nombreux répertoires et sous-répertoires. Je n'ai pas envie de mettre une copie de index.php
dans chaque sous-répertoire.
Je sais que je peux utiliser des liens symboliques sur les systèmes qui les prennent en charge, mais ce n’est pas du travail d’être humain de parcourir toute la hiérarchie et de placer des liens vers le fichier d’index en question si aucun autre n’est présent. En outre, tous les systèmes ne prennent pas en charge la liaison symbolique.
Existe-t-il une méthode pour indiquer au serveur Web (Apache, nginx, ..) que si un fichier d'index n'est pas présent dans un répertoire demandé, il doit utiliser le index.php
spécifié situé ailleurs?
Je comprends ce que vous demandez, mais je ne peux pas comprendre pourquoi vous auriez besoin d’un fichier index.php dans chaque répertoire (si les pratiques de programmation d’applications php typiques sont suivies).
Si vous devez faire référence au fichier racine index.php de chaque sous-répertoire, mod_rewrite est le moyen le plus simple au niveau du serveur. Comme vous le demandez peut-être, ce n'est pas indépendant du serveur, mais consultez cet article pour obtenir des exemples sur la manière de faire en sorte que le serveur fasse toujours référence au fichier index.php: https://stackoverflow.com/questions/8595964/redirect-all-traffic-to-index-php-using-mod-rewrite
Existe-t-il une méthode pour indiquer au serveur Web (Apache, nginx, ..) que, si un fichier d'index n'est pas présent dans un répertoire situé sous la racine du document, il doit utiliser le
index.php
spécifié situé ailleurs?
Oui, sur Apache, vous pouvez contrôler cela avec la directive DirectoryIndex
dans votre configuration Apache (ou votre fichier .htaccess). Par exemple:
DirectoryIndex index.php /index.php
Lors de la demande d'un répertoire de système de fichiers, ceci servira soit index.php
dans ce répertoire, s'il existe, sinon /index.php
sera servi (index.php
à la racine du document).
Nginx semble avoir une directive similaire appelée simplement index
.
Référence: https://serverfault.com/a/402949/49157