对于404,django mod_wsgi和apache funky rewrite rule

时间:2012-04-25 21:13:27

标签: django apache mod-wsgi

我只是在Apache和mod_wsgi的生产环境中设置我的django。一切似乎都很好。我已授予对静态文件夹(对于管理资源)的访问权限,并且服务器正在按预期工作。

在尝试查看不通过Django匹配网页的网页时,似乎有一个奇怪的事情。当达到这个明显的404时(我暂时打开了DEBUG)。

此问题源于我希望在静态文件夹中禁用目录列表。

我添加了Options -Indexes参数,它似乎有效。

唯一的问题是apache重写引擎似乎,当它找不到资源(或资源是文件夹)时,它会将404.shtml附加到URL。但追加并不是一个正确的词。相反,它用404.shtml替换请求URL的最后9个字符。然后我的Django 404调试屏幕出现了,这是我原始请求的荒谬版本。

以下是一个例子:

请求网址: http://mobile.mywebsite.com/static/unknown_file

Django收到:

找不到页面(404) 请求方法:GET 请求网址:http://mobile.mywebsite.com/static/un/404.shtml

然而,如果我要求 http://mobile.mywebsite.com/static/404.shtml

然后它会被相同的文字覆盖,所以显示http://mobile.mywebsite.com/static/404.shtml,显然没有变化。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

听起来您在apache配置中定义了自定义http文档,例如:

ErrorDocument 404 /un/404.shtml