mod_dir добавление index.html перед mod_rewrite с прокси в .htaccess (работало в Apache 2.2)
Я работаю над обновлением сайта с apache 2.2 до 2.4. У меня проблема, когда mod_dir добавляет "index.html" к URL-адресам перед
.htaccess
файл обрабатывается. Это вызывает проблемы при перезаписи с использованием флага прокси для сайтов, использующих другой индекс (в основном index.php vs index.html). То же правило, примененное в конфигурации сервера, работает нормально - просто не работает из
.htaccess
.
Мне интересно, известно ли это изменение поведения между 2.2 и 2.4?
Есть ли способ заставить mod_dir ждать до
.htaccess
был обработан для добавления индекса к URL-адресу? Он чувствует, как другие ударил бы эту проблему, но я не нашел этот точный вопрос. Я подумал, может быть, на старом сайте есть настройка, делающая это, но я еще не нашел ее.
Пример:
Работает под Apache 2.2 (в
.htaccess
):
RewriteRule ^foo/(.*)$ https://php.foo/new-foo/$1 [P]
В версии 2.4 это правило работает в конфигурации сервера, но если правило находится в
.htaccess
, результирующий URL, отправленный на php.foo, заканчивается добавлением /index.html. (https://site/foo/
проксируется на
https://php.foo/new-foo/index.html
а не просто
https://php.foo/new-foo/new-foo/
)
У меня есть своего рода быстрое и грязное исправление, которое включает регулярное выражение (следовательно, грязное), но мне интересно, является ли это известным изменением в поведении и / или есть ли способ заставить mod_dir ждать, пока не будет обработан.htaccess чтобы добавить индекс к URL-адресу.
Для нашего случая использования желательно иметь правило в.htaccess, а не в конфигурациях сервера (по человеческим причинам). На данный момент мое лучшее решение - это регулярное выражение для удаления index.html из правила перезаписи. Это выглядит некрасиво, поэтому я бы предпочел этого не делать. Пример:
RewriteRule ^foo/(.*)(?<=\/)(index\.ht.*)?$ https://php.foo/new-foo//$1 [P]
Проксируемые пути фактически не существуют на исходном хосте (они предназначены только для прокси).
Другой вариант (который владелец сайта также считает менее желательным) - это создание путей и добавление дополнительных
.htaccess
файлы с
DirectoryIndex disabled
в них. Однако, если это можно считать "лучшей практикой", я думаю, это может оказаться более приемлемым...