【问题标题】:Django site doesn't work with DEBUG=FalseDjango 站点不适用于 DEBUG=False
【发布时间】:2013-09-04 18:16:12
【问题描述】:

我使用的是 Django 1.5,我知道安全问题 requiring the ALLOWED_HOSTS argument to include the host。该网站托管在 webfaction 上。

当我将生产站点设置为 DEBUG = False 时,每个页面都会出现 500 个错误。我得到的错误是:

SuspiciousOperation:无效的 HTTP_HOST 标头(您可能需要设置 ALLOWED_HOSTS): www.mydomain.org

但在 settings.py 中,我有以下内容:

ALLOWED_HOSTS = ['.mydomain.org']

这让我发疯了。有什么想法吗?

编辑:这似乎与header spoofing as in this post 无关。我的设置与错误消息中显示的允许主机匹配。

更新解决方案:我很尴尬地说,后来我的 settings.py 文件中有第二个 ALLOWED_HOSTS = [ ] 声明。这覆盖了我之前的声明并导致了问题。

【问题讨论】:

  • 我犯了同样的错误 - 感谢您为我缩短调试过程!

标签: python django webfaction


【解决方案1】:

也许您只需将您的域格式化为完整的域名,例如:

ALLOWED_HOSTS = ['www.mydomain.org']

这对我有用(不再出现 500 个错误)

确保您通过 www.mydomain.org

访问您的 prod 应用程序

【讨论】:

    【解决方案2】:

    这个 Stackoverflow 问题会对您有所帮助:

    Django's SuspiciousOperation Invalid HTTP_HOST header

    关于这件事有一张开票:

    https://code.djangoproject.com/ticket/19866

    【讨论】:

    • 这似乎是关于“HTTP_HOST”标头与 ALLOWED_HOSTS 设置不匹配的情况,但在我的情况下是这样。
    猜你喜欢
    • 2011-11-16
    • 2020-12-31
    • 1970-01-01
    • 2012-12-21
    • 2013-03-08
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    相关资源
    最近更新 更多