Why is Django throwing error "DisallowedHost at /"? Why is Django throwing error "DisallowedHost at /"? python python

Why is Django throwing error "DisallowedHost at /"?


In your settings.py, there is a list called ALLOWED_HOSTS. You need to add the IP address you see in the error to that list:

ALLOWED_HOSTS = ['XX.XX.XX.XX']

Note: only add the IP address, and not the port (e.g., 127.0.0.1 and not 127.0.0.1:8000)

Explanation:

Django checks the Host header of the HTTP request for a url/ip address that is within the allowed hosts.

From the django website:

This is a security measure to prevent HTTP Host header attacks, which are possible even under many seemingly-safe web server configurations.

https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts


For development, you can use the * wildcard to allow all hosts in settings.py:

ALLOWED_HOSTS = ['*']

Important

Modify this configuration when you deploy your app in production environment.


Include both ('www.name.com', 'ip.ip.ip.ip')Set Debug = True, then retry the IP & URL Address.

Go to the Traceback section, find the message [ raise DisallowedHost(msg) ]click -> ▼ Local vars

It will show the incoming domain name and the settings for allowed hosts:

*Variable       Value*allowed_hosts  ['ip.ip.ip.ip', 'name.com']*domain          'something.com'*

Copy the incoming value into your settings.py. If the you see old settings restart the server\nginx