这与我所阅读的大部分内容相反。我在使用Apache 2.2.8的Amazon实例上运行Ubuntu 8.04,我无法弄清楚为什么将AllowOverride设置为None for root并不会阻止我的.htaccess文件被包含在内。

我有一个带有hello.py的子目录和一个.htaccess文件。当我浏览到该文件时,它可以正常使用modpython提供文件。如果我在.htaccess中放入一些垃圾,我会收到服务器错误,所以我知道正在使用.htaccess文件。此外,如果我删除.htaccess文件,则hello.py不再是modpython服务器 - 而是浏览器尝试打开它。

在我的其中一个网站中(已启用网站链接),我有<!>“; AllowOverride无<!>”;对于根目录。我认为这会阻止.htaccess被包含在root及其所有子目录中,这些子目录应该导致hello.py不被mod_python服务。但是,它仍然可以正常运行,我可以测试.htaccess仍然被包含在内,因为当我修改它时,我会在浏览器中看到结果。

也许在网站启用时我无法理解我的文件。这是我正在使用的文件:

NameVirtualHost *:8080 
<VirtualHost *:8080>
<Directory />
AllowOverride None
</Directory>
</VirtualHost>

感谢您的帮助。

有帮助吗?

解决方案

删除.htaccess时,不通过mod_python提供文件的原因是因为mod_python的设置位于其中。如果您将这些内容移动到您的站点可用文件,您可以删除.htaccess,对问题视而不见,并将其称为一天。

如果这不能满足你,那么至于为什么.htacess正在阅读,我不能说。你是正确的,AllowOverride无应该阻止文件被读取。您是否考虑过在添加虚拟站点时搞砸了什么?尝试在配置中抛出一些垃圾,看看它是否有抱怨,只是为了确保它被读取。

其他提示

AllowOverride 仅允许<= > - 部分,所以你已经做好了一切。

您可能遇到的一个问题是其他(sub - )<Directory> - 部分将None设置为与/var/www不同的部分。这将覆盖这些子目录的设置。 我用

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride AuthConfig 
    Order allow,deny
    allow from all
</Directory>

.htaccess(我的docroot)我可以使用mod_python es。

如果删除<Directory />,<=>不再起作用的原因是<=>设置通常位于<=>文件中。

如果您需要更多信息,请将您的配置发送给我们。

PS:事实上,上面提到的文件说明你应该从不将<=>设置为<=>中的<=>。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top