Comment fonctionne la récursion htaccess?

Je travaille dans une situation hébergée où j’ai un site Web principal situé dans ~/www . J’ai plusieurs sous-domaines hébergés dans les sous-domaines ~/www/__subdomains . Dans le webroot principal, j’ai un fichier .htaccess qui fait un peu de réécriture mineure. Dans deux de mes sous-domaines, j’ai des fichiers .htaccess similaires et ces sous-domaines répondent correctement.

Dans 2 autres sous-domaines nouvellement créés, j’ai des fichiers .htaccess qui sont vides, sauf pour une directive AddHandler . Ce que je trouve, c’est que l’existence / le contenu du fichier racine .htaccess affecte ces 2 sous-domaines. Ils jettent une erreur de 500. Dès que je le renommer, les sous-domaines cassés fonctionnent.

Ceci, bien sûr, brise les autres sites, donc je ne peux pas simplement enlever ceci, mais cela viole ma compréhension de la façon dont .htaccess fonctionne. Je pensais que tant qu’il y avait un fichier .htaccess dans un sous-répertoire, ceux des répertoires ancêtres ne seraient jamais exécutés.

Clairement, je me trompe à ce sujet, alors j’espère que quelqu’un pourra m’éduquer et m’aider à résoudre ce problème.

Merci.

.htaccess fichiers .htaccess sont appliqués à partir du répertoire en cours, s’arrêtant à la configuration principale. Toutes les règles et directives figurant dans le fichier .htaccess répertoire en cours remplacent toutes les autres règles trouvées lors de l’évaluation de .htaccess .

Cependant, le problème, comme vous l’avez trouvé, est que les règles qui ne sont pas explicitement remplacées sont appliquées à partir des autres fichiers. Vous pouvez vous référer au tutoriel Apache .htaccess pour plus d’explications, en particulier la section Comment les directives sont appliquées .

J’espère que cela pourra aider.