我刚刚在使用 Apache 和 mod_wsgi 的生产环境中设置了我的 django。一切似乎都很好。我已授予对静态文件夹(用于管理资源)的访问权限,并且服务器正在按预期工作。
尝试通过 Django 查看与 URL 不匹配的网页时似乎有一件奇怪的事情。当达到这个明显的 404 时(我暂时打开了调试)。
这个问题源于我希望禁用静态文件夹中的目录列表。
我添加了 Options -Indexes 参数,它似乎有效。
唯一的问题是 apache 重写引擎似乎在找不到资源(或资源是文件夹)时将 404.shtml 附加到 URL。但是 append 并不是一个正确的词。相反,它将请求 URL 的最后 9 个字符替换为 404.shtml。然后我的 Django 404 调试屏幕出现,我的原始请求有一个无意义的版本。
这是一个例子:
请求网址:http: //mobile.mywebsite.com/static/unknown_file
Django 收到:
找不到页面 (404) 请求方法:GET 请求 URL:http: //mobile.mywebsite.com/static/un/404.shtml
但是,如果我请求 http://mobile.mywebsite.com/static/404.shtml
然后它被相同的文本覆盖,所以http://mobile.mywebsite.com/static/404.shtml出现了,显然没有改变。
有任何想法吗?