Почему документация Passenger / mod_rails требует от меня явного отключения MultiView? - PullRequest
3 голосов
/ 23 января 2011

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

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

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

Options -MultiViews

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

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

1 Ответ

0 голосов
/ 23 января 2011

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

Здесь - это запись в блоге о еще одной тонкой возможной проблеме с MultiViews.

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

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

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

...