Заголовок установлен с Apache в нескольких htaccess

1

У меня есть сайт в каталоге /aaa/bbb/ccc/index.php

У меня есть htaccess в каждом каталоге "/aaa", другой в "/aaa/bbb", а другой в "/aaa/bbb/ccc".

В htaccess, расположенном в /aaa, у меня есть это

Header set AAA ZZZ

В htaccess, расположенном в /aaa/bbb и /aaa/bbb/ccc, у меня есть это

Header set AAA XXXXXXXX

Когда я открываю веб-сайт с помощью моего браузера, заголовок AAA имеет значение ZZZ. По некоторым причинам другие файлы htaccess не переопределяют значение AAA. Но действительно удивительно, что если я изменю htaccess с /aaa/bbb и /aaa/bbb/ccc на код ниже, заголовок будет переопределен! Зачем?

<FilesMatch "^.*$">

    Header set AAA XXXXXXXX

</FilesMatch>
  • 0
    Директивы Header в подкаталогах .htaccess файлов должны переопределять родительский. Это определенный заголовок или пользовательский заголовок? Можете ли вы просто подтвердить, что директивы Header не находятся внутри каких-либо других контейнеров? Поместив эту директиву в контейнер <FilesMatch> вы, вероятно, <FilesMatch> порядок выполнения. Files и контейнеры FilesMatch обрабатываются поздно в запросе, возможно, после обработки других директив в .htaccess.
  • 0
    @w3d w3d Хотелось бы, чтобы вы были правы, но это не так ... несколько директив HEADER в разных htaccess подкаталогах не перекрывают самый верхний файл htaccess. Если только переопределяет, если я использую <filesMatch>. Не могли бы вы проверить, что я говорю на вашем бэкэнде, и увидеть своими глазами это странное поведение?
Показать ещё 2 комментария
Теги:
.htaccess

1 ответ

0

Это похоже на ошибку, и я сообщил об этом сообществу Apache по адресу https://bz.apache.org/bugzilla/show_bug.cgi?id=58789

  • 0
    С тех пор я проверил это на Apache 2.4.7, но все еще не могу воспроизвести поведение, которое вы испытываете. Я вижу такое же поведение в Apache 2.4.7, как и в Apache 2.2.9 - установка заголовка в файле .htaccess подкаталога перезаписывает родителя (как и ожидалось). Из отчета об ошибке я замечаю, что вы используете Apache 2.4.6 - в 2.4.7 произошли некоторые заметные изменения в mod_headers, так что, возможно, была ошибка, специфичная для Apache 2.4.6 (и более ранних версий)?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню