Подтвердить что ты не робот

Что такое опции Multiviews в .htaccess?

Я много боролся с правилом доступа, которому необходимо переписать одну часть URL-адреса, добавляя путь.

RewriteRule ^(configuration/.+)$ application-server/$1 [L,NC,R=301,NE]

Это правило вызвало только пустую страницу на моем сайте Joomla без журнала ошибок или сообщений. Любопытно, что все остальные правила, над которыми я работал отлично:

RewriteRule ^(log/.+)$ application-server/$1 [L,NC,R=301,NE]
RewriteRule ^(monitor/.+)$ application-server/$1 [L,NC,R=301,NE]

в конце концов, я нашел в форуме предложение использовать следующий вариант:

Options -Multiviews

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

4b9b3361

Ответ 1

Это касается согласования содержимого Apache.

A MultiViews поиск - это то, где сервер выполняет неявное совпадение с именем файла и выбирает из результатов.

Например, если в корневой папке есть файл с именем configuration.php (или другим расширением), и вы настроили правило в своем htaccess для виртуальной папки с именем configuration/, тогда у вас будет проблема с вашим правилом потому что сервер автоматически выберет configuration.php (если включен MultiViews, что больше всего времени).

Если вы хотите отключить это поведение, вам просто нужно добавить это в свой htaccess
Options -MultiViews

Таким образом, ваше правило будет теперь оцениваться, потому что согласование содержимого отключено.

Изменить

В некоторых общих хостах модуль согласования может быть не включен. Это даст вам 500 ошибок. Чтобы избежать этой ошибки, вы можете по умолчанию инкапсулировать директиву в блок IfModule.

<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>