J'ai domain.com
et sub.domain.com
pointant vers le même serveur et j'utilise mod_rewrite pour réécrire les URLs pour sub.domain.com
vers le sous-répertoire sub
. J'ai le fichier .htaccess
suivant dans la racine du document :
DirectoryIndex index.html index.php
# Empêche la boucle de réécriture infinie.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
# Envoie toutes les requêtes adressant sub.domain.com...
RewriteCond %{HTTP_HOST} =sub.domain.com [NC]
# ...vers le répertoire /sub.
RewriteRule ^ /sub%{REQUEST_URI} [QSA]
Dans le répertoire sub
j'ai index.php
et pas de index.html
, mais les requêtes vers http://sub.domain.com
semblent ignorer complètement index.php
et renvoyer une erreur 404. Cependant, si j'ai index.html
là-bas, c'est servi. La seule façon d'obtenir que index.php
soit servi est de définir
DirectoryIndex index.php
mais ce n'est pas quelque chose que je veux faire pour l'ensemble du site.
Curieusement, les URLs autres que la racine du document présentent un comportement normal de DirectoryIndex
. Par exemple, http://sub.domain.com/search
essaie de trouver sub/search/index.html
puis sub/search/index.php
avant de renvoyer une erreur 404.
Si je fais une requête vers le répertoire sub
à partir du domaine parent http://domain.com/sub
, je peux voir index.php
, ce qui me laisse complètement perplexe face au problème.
Je voudrais inclure le journal d'erreurs d'Apache, mais j'utilise un hébergement partagé et je n'ai pas de moyen d'augmenter la verbosité du journal. De plus, je n'ai pas pu reproduire cette erreur localement. Le serveur d'hébergement Web utilise Apache 2.4.3, et mon serveur local est Apache 2.4.9.
1 votes
Essayez d'ajouter
DirectoryCheckHandler On
à votre configuration apache? docs0 votes
Désolé pour le retard. En regardant la documentation pour
DirectoryCheckHandler
, ils indiquent que "Les versions antérieures à 2.4 agissent implicitement comme si 'DirectoryCheckHandler ON' avait été spécifié." Mon serveur Apache local devrait avoir cette directive DÉSACTIVÉE par défaut, et je suppose que le serveur d'hébergement devrait l'avoir aussi DÉSACTIVÉE (car c'est une version 2.4). Si le comportement deDirectoryCheckHandler
est la cause principale, ne devrais-je pas le voir sur les deux serveurs?0 votes
Et de toute façon, je ne pourrais pas définir
DirectoryCheckHandler
sur le serveur hébergé car il n'est pas disponible dans cette version.