为什么Passenger / mod_rails文档要求我明确禁用MultiViews?

时间:2011-01-23 15:18:05

标签: ruby-on-rails apache passenger multiview

来自documentation

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

那么为什么以下这一行?

Options -MultiViews

我理解,how MultiViews很有效,坦率地说,我不明白为什么有人会使用它。不过,我不明白为什么Passenger配置指南认为在站点配置中明确禁用该选项非常重要。

任何人都可以了解情况吗?

1 个答案:

答案 0 :(得分:0)

我对Rails并不熟悉,但一般来说,启用MultiViews会导致某些情况下的搞笑行为 - 最常见的是,当输入错误的URL时,它最终会提供一个页面,而不是返回404

Here是关于MultiViews另一个微妙可能问题的博客文章。

This GoDaddy博客文章指出了另一个有问题的后果:

  

脚本文件特别值得关注。假设您有一个旧版本的script.pl文件,您可以将其复制到script.pl.bak以进行备份。对于Script.pl.bak的请求仍然会被Apache解释为Perl脚本,从而导致执行旧版本的代码!可以想象由于Apache的这种行为,可能会无意中执行脚本文件的其他实例。

总而言之,Multiviews适用于静态HTML页面的集合,但在具有重写URL的环境中并不是一件好事。