【发布时间】:2010-10-11 01:03:36
【问题描述】:
这是我读过的大多数问题的相反问题。我在带有 Apache 2.2.8 的 Amazon 实例上运行 Ubuntu 8.04,但我不明白为什么将 root 的 AllowOverride 设置为 None 并不能阻止包含我的 .htaccess 文件。
我有一个包含 hello.py 的子目录和一个 .htaccess 文件。当我浏览到该文件时,它与提供该文件的 modpython 一起工作得很好。如果我在 .htaccess 中放入一些垃圾,则会出现服务器错误,因此我知道正在使用 .htaccess 文件。此外,如果我删除 .htaccess 文件,则 hello.py 不再是 modpython 的服务器 - 而是浏览器尝试打开它。
在我的一个可用站点(链接到已启用站点)中,我的根目录有“AllowOverride None”。我认为这会阻止 .htaccess 从根目录及其所有子目录中包含,这会导致 hello.py 无法由 mod_python 提供服务。但是,它仍然可以正常运行,并且我可以测试是否仍然包含 .htaccess,因为当我修改它时,我会在浏览器中看到结果。
也许我对启用站点的文件有一些不理解的地方。这是我正在使用的文件:
NameVirtualHost *:8080
<VirtualHost *:8080>
<Directory />
AllowOverride None
</Directory>
</VirtualHost>
感谢您的帮助。
【问题讨论】:
-
虽然 AllowOverride None 应该阻止它读取 .htaccess 文件,但我注意到您的配置不包含任何有关 mod_python 的内容(即 AddHandler mod_python .py)。 .htaccess 文件中有什么内容?
-
.htaccess: AddHandler mod_python .py PythonHandler mptest PythonDebug On and in mptest.py: from mod_python import apache def handler(req): req.log_error('handler') req.content_type = 'text/普通' req.send_http_header() req.write("Hello World!") return apache.OK
标签: .htaccess apache2 mod-python