3

文档中:

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

那么为什么下面一行呢?

Options -MultiViews

我大致了解 MultiViews的工作原理,坦率地说,我不明白为什么有人会使用它。尽管如此,我不明白为什么乘客配置指南认为明确禁用站点配置中的选项如此重要。

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

4

1 回答 1

0

我不熟悉 Rails,但总的来说,启用 MultiViews 会在某些情况下导致有趣的行为 - 最常见的是,当输入错误的 URL 时,它最终会提供页面,而不是返回应有的 404。

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

这个GoDaddy 博客条目指出了另一个有问题的后果:

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

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

于 2011-01-23T15:58:35.203 回答