The Python Oracle

Invalid http_host header

Become part of the top 3% of the developers by applying to Toptal https://topt.al/25cXVn

--

Music by Eric Matyas
https://www.soundimage.org
Track title: Life in a Drop

--

Chapters
00:00 Question
00:50 Accepted answer (Score 272)
01:20 Answer 2 (Score 4)
01:44 Answer 3 (Score 2)
02:06 Answer 4 (Score 0)
03:05 Thank you

--

Full question
https://stackoverflow.com/questions/4058...

Question links:
https://www.pythonprogramming.net/django.../

Accepted answer links:
[read from here.]: https://docs.djangoproject.com/en/1.10/r...

Answer 4 links:
[How to Solve "The domain name provided is not valid according to RFC 1034/1035" in Django during Development]: https://notabela.hashnode.dev/how-to-sol...

--

Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...

--

Tags
#python #django #python27 #httphost

#avk47



ACCEPTED ANSWER

Score 297


The error log is straightforward. As it suggested,You need to add 198.211.99.20 to your ALLOWED_HOSTS setting.

In your project settings.py file,set ALLOWED_HOSTS like this :

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

For further reading read from here.




ANSWER 2

Score 11


settings.py

ALLOWED_HOSTS = ['*'] # if you are in dev or docker

Don't do this in production if you are not using docker, just put the IP address.




ANSWER 3

Score 2


In your project settings.py file,set ALLOWED_HOSTS like this :

ALLOWED_HOSTS = ['62.63.141.41', 'namjoosadr.com']

and then restart your apache. in ubuntu:

/etc/init.d/apache2 restart



ANSWER 4

Score 0


if no other answer work you can try modifying manage.py and add this three lines

from django.utils.regex_helper import _lazy_re_compile
import django.http.request
django.http.request.host_validation_re = _lazy_re_compile(r"[a-zA-z0-9.:]*")

to end up having something like this:

import os
import sys

from django.utils.regex_helper import _lazy_re_compile
import django.http.request    
django.http.request.host_validation_re = _lazy_re_compile(r"[a-zA-z0-9.:]*")

def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project01.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

as it is explained in this post: How to Solve "The domain name provided is not valid according to RFC 1034/1035" in Django during Development