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в них. Однако, если это можно считать "лучшей практикой", я думаю, это может оказаться более приемлемым...

0 ответов

Другие вопросы по тегам