如何解决SuspiciousOperation:无效的HTTP_HOST标头错误?

时间:2013-07-23 14:41:13

标签: python django apache pythonanywhere

我试图在pythonanywhere上部署我的django应用。

来自apache错误日志的回溯:

2013-07-23 09:31:35,058 :Internal Server Error: /favicon.ico
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 89, in get_response
    response = middleware_method(request)
  File "/usr/local/lib/python2.7/dist-packages/django/middleware/common.py", line 55, in process_request
    host = request.get_host()
  File "/usr/local/lib/python2.7/dist-packages/django/http/__init__.py", line 179, in get_host
    "Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): %s" % host)
SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): monty_singh.pythonanywhere.com

我尝试['*']['monty_singh.pythonanywhere.com']作为ALLOWED_HOSTS的值,但该应用仍无效。无论我为ALLOWED_HOSTS设置了什么值,我都会得到同样的错误。

2 个答案:

答案 0 :(得分:6)

当Django从HTTP请求验证主机时,它会尝试将它与您在the source here中找到的以下正则表达相匹配:

host_validation_re = re.compile(r"^([a-z0-9.-]+|\[[a-f0-9]*:[a-f0-9:]+\])(:\d+)?$")

您的用户名中的下划线导致Django拒绝请求中的主机名。您可以使用新用户名创建new PythonAnywhere account或使用其他Web框架。

答案 1 :(得分:0)

从您的 pyhonanywhere 主页转到文件并删除“缓存”(如果有),然后在您的项目文件夹中找到 settings.py 文件,添加星号或似乎不允许的链接: ALLOWED_HOSTS = ['*'] 然后返回仪表板>>网页并按“重新加载”按钮,然后单击顶部的“重新加载”按钮。