Почему документация Passenger/mod_rails просит меня явно отключить MultiViews?

Из документации:

<VirtualHost *:80>
    ServerName www.mycook.com
    DocumentRoot /webapps/mycook/public
    <Directory /webapps/mycook/public>
        Allow from all
        Options -MultiViews
    </Directory>
</VirtualHost>

Так почему следующая строка?

Options -MultiViews

Я грубо понимаю, как работает MultiViews, и, честно говоря, я не понимаю, почему кто-то будет его использовать. Тем не менее, я не понимаю, почему в руководстве по настройке Пассажира так важно явно отключить эту опцию в конфигурации сайта.

Кто-нибудь может пролить свет на ситуацию?

1 ответ

Решение

Я не знаком с Rails, но в целом включенные MultiViews могут привести к забавному поведению в определенных ситуациях - чаще всего это может привести к тому, что при вводе неправильного URL-адреса будет отображаться страница, а не будет возвращаться значение 404, как должно.

Вот сообщение в блоге о другой тонкой возможной проблеме с MultiViews.

Эта запись в блоге GoDaddy указывает на еще одно проблемное последствие:

Файлы сценариев представляют особый интерес. Скажем, у вас есть старая версия файла script.pl, который вы копируете в script.pl.bak для резервного копирования. Запрос на script.pl.bak по-прежнему будет интерпретироваться Apache как Perl-скрипт, в результате чего будет выполняться старая версия вашего кода! Можно представить другие случаи, когда файл сценария может быть выполнен непреднамеренно из-за такого поведения Apache.

В итоге, Multiviews хороши для коллекций статических HTML-страниц, но не очень хорошая вещь в среде с переписанными URL-адресами.

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