Почему документация 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-адресами.