无效的http_host标头


109

我正在尝试使用Django框架开发网站,并使用DigitalOcean.com启动并将必要的文件部署到django-project中。

我必须将静态文件包含到Django项目中,并且在收集静态文件后,我尝试刷新我的ip

我包括了我用来创建网站的教程。 https://www.pythonprogramming.net/django-web-server-publish-tutorial/

我收到以下错误:

/无效的HTTP_HOST标头中的DisallowedHost:“ 198.211.99.20”。您可能需要将u'198.211.99.20'添加到ALLOWED_HOSTS。

有人可以帮我解决这个问题吗?这是我第一个使用Django框架的网站。


那也可能是您在DigitalOcean上的浮动IP地址。
Poopy McFartnoise

Answers:


185

错误日志很简单。如它的建议,您需要 在设置中添加198.211.99.20ALLOWED_HOSTS

在您的项目settings.py文件中,设置ALLOWED_HOSTS如下:

ALLOWED_HOSTS = ['198.211.99.20', 'localhost', '127.0.0.1']

如需进一步阅读,请从这里阅读


现在得到以下错误请求URL:198.211.99.20异常类型:TemplateDoesNotExist异常值:personal / home.html异常位置:/usr/local/lib/python2.7/dist-packages/django/temp‌late/loader.py在get_template的第25行中,我的模板位于以下文件夹中/ home / django / django_project / personal / templates / personal
Kathiravan Natarajan

@Kathir有很多该错误的示例。只需在Google上搜索它,如果问题仍然存在,请作为一个单独的问题提出,评论不是很描述。
Prakhar Trivedi

这绝对有效,但是是坏习惯,因为您应该始终使用.env文件
Abhishek Jebaraj

@AbhishekJebaraj您可以再解释一下还是分享更多解释的链接?
耶稣·阿尔玛拉尔-Hackaprende 17-10-31

1
@JesusAlmaral .env文件是本地文件,包含密码和其他敏感信息。如果将所有这些敏感信息放入代码本身,则可能会受到危害。因此,我们使用此本地文件.env,每个人都使用自己的密码等在本地存储
Abhishek Jebaraj

0

settings.py

ALLOWED_HOSTS = ['*']

2
就像pydanny所说的:“ ...一旦弄清这个问题,就不要保留它。原因是Django可能容易受到HTTP_HOST标头攻击。自动脚本会搜索Internet来检查网站是否存在此漏洞。” github.com/pydanny/cookiecutter-django/issues/…–
javidazac

6
大声笑,那是为了发展环境。在生产中只需要设置DEBUG = False。
乔治·波利奥维

4
您不想在生产中使用“ *”。这完全绕开了允许的主机的原因和安全性。
安迪·波凯特

@radtek-更深入一个目录,您正在编辑错误的settings.py
birdmw
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.