Недійсний заголовок 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.