Недійсний заголовок http_host


109

Я намагаюся розробити веб-сайт за допомогою Django Framework і запустити за допомогою DigitalOcean.com і розгорнути необхідні файли в django-проект.

Мені довелося включати статичні файли в проект Django і після збору статичних файлів я спробував оновити ip

Я включаю підручники, які я використовував для створення веб-сайту. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Я отримую таку помилку:

DisallowedHost at / Invalid HTTP_HOST header: '198.211.99.20'. Можливо, вам потрібно буде додати u'198.211.99.20 'до ALLOWED_HOSTS.

Може хтось допоможе мені це виправити? Це мій перший веб-сайт, що використовує рамку Django.


Це може бути і ваша плаваюча IP-адреса на DigitalOcean.
Пупі МакФартнуз

Відповіді:


185

Журнал помилок простий. Як було запропоновано, вам потрібно додати 198.211.99.20 до ALLOWED_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 Існує багато прикладів цієї помилки. Просто гугл її, і якщо проблема все ще триває, будь ласка, задайте її як окреме запитання, коментарі не дуже описові.
Прахар Триведі

Це, безумовно, працює, але це погана практика, оскільки ви завжди повинні використовувати .env файл
Abhishek Jebaraj

@AbhishekJebaraj, чи не могли б ви пояснити трохи більше або поділитися посиланням із додатковими поясненнями?
Ісус Алмарал - Хакапренде

1
@JesusAlmaral Файл .env - це локальний файл, що містить паролі та іншу конфіденційну інформацію. Якщо ви помістите всю цю конфіденційну інформацію всередину свого коду, вона може зірватися. Таким чином, ми використовуємо цей локальний файл .env, і кожен зберігає свої власні паролі тощо локально
Abhishek Jebaraj

0

settings.py

ALLOWED_HOSTS = ['*']

2
Як сказав pydanny, "... не залишайте це як таке, як тільки ви зрозумієте це. Причина полягає в тому, що Django робить потенційно вразливим до атак заголовка HTTP_HOST. А автоматизовані сценарії обшукують Інтернет, щоб перевірити, чи мають сайти цю вразливість". github.com/pydanny/cookiecutter-django/isissue/…
javidazac

6
Lol, тобто для розвитку env. у виробництві потрібно лише встановити DEBUG = False.
Георгій Поліовій

4
Ви не хочете використовувати "*" для виробництва. Це повністю обходить причину та безпеку дозволених господарів.
Енді Покетт

@radtek - заглибиш одну директорію глибше, ти
редагуєш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.