Как работает htaccess рекурсия? - PullRequest
7 голосов
/ 05 мая 2011

Я работаю в ситуации, когда у меня есть основной webroot, расположенный в ~/www. У меня есть несколько поддоменов, размещенных в ~/www/__subdomains. В основном webroot у меня есть файл .htaccess, который немного переписывается. В двух моих поддоменах у меня есть похожие .htaccess файлы, и эти поддомены отвечают правильно.

В двух других вновь созданных поддоменах у меня есть .htaccess пустые файлы, кроме директивы AddHandler. Я обнаружил, что наличие / содержание корневого .htaccess файла влияет на эти 2 поддоменов. Они выбрасывают 500 ошибок. Как только я переименую его, сломанные поддомены будут работать.

Это, конечно, нарушает другие сайты, поэтому я не могу просто убрать это, но это нарушает мое понимание того, как работает .htaccess рекурсия. Я думал, что, пока в подкаталоге есть файл .htaccess, файлы в каталогах предков никогда не будут выполнены.

Очевидно, я ошибаюсь в этом, так что я надеюсь, что кто-то может обучить меня и помочь мне исправить это.

Спасибо.

1 Ответ

9 голосов
/ 06 мая 2011

.htaccess файлы применяются из текущего каталога вверх, останавливаясь на основной конфигурации.Любые правила и директивы, которые есть в файле .htaccess текущего каталога, заменяют любые другие правила, найденные при дальнейшей оценке .htaccess.

Однако проблема, как вы обнаружили, заключается в том, что правила, которые явно не переопределяются, применяются из других файлов.Вы можете обратиться к Apache .htaccess Tutorial для дальнейшего объяснения, в частности, к разделу Как применяются директивы .

Надеюсь, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...