2011-01-23 42 views
3

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

<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配置指南认为它显式禁用站点配置中的选项非常重要。

任何人都可以阐明情况吗?

+0

难道它的扩展混乱与Rail的页面缓存机制有冲突吗? – noodl 2011-01-23 15:48:21

回答

0

我对Rails并不熟悉,但一般情况下,在某些情况下启用MultiViews会导致有趣的行为 - 最常见的情况是,当输入不正确的URL时,它最终会提供页面,而不是返回404应该。

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

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

脚本文件是特别关注的。假设您有一个旧版本的script.pl文件,您将其复制到script.pl.bak以供备份。 script.pl.bak的请求仍然会被Apache解释为Perl脚本,导致您的代码的旧版本被执行!我们可以想象其他情况下,由于Apache的这种行为,可能无意中执行脚本文件。

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

相关问题