Invalid HTTP_HOST header: 'www.sana-shop.ir'. You may need to add 'www.sana-shop.ir' to ALLOWED_HOSTS.
Request Method: | GET |
---|---|
Request URL: | http://www.sana-shop.ir/tag/%25d8%25ae%25d8%25b1%25db%258c%25d8%25af-%25d8%25a7%25d8%25b1%25d8%25b2%25d8%25a7%25d9%2586-%25d9%2584%25d9%2588%25d8%25b3%25d8%25aa%25d8%25b1-%25d8%25a8%25d8%25b1%25d9%2586%25d8%25b2%25db%258c/ |
Django Version: | 4.2.6 |
Exception Type: | DisallowedHost |
Exception Value: | Invalid HTTP_HOST header: 'www.sana-shop.ir'. You may need to add 'www.sana-shop.ir' to ALLOWED_HOSTS. |
Exception Location: | /home/sanasho1/virtualenv/website/3.11/lib/python3.11/site-packages/django/http/request.py, line 150, in get_host |
Python Executable: | /home/sanasho1/virtualenv/website/3.11/bin/python |
Python Version: | 3.11.5 |
Python Path: | ['', '/home/sanasho1/website', '/opt/alt/python311/lib64/python311.zip', '/opt/alt/python311/lib64/python3.11', '/opt/alt/python311/lib64/python3.11/lib-dynload', '/home/sanasho1/virtualenv/website/3.11/lib64/python3.11/site-packages', '/home/sanasho1/virtualenv/website/3.11/lib/python3.11/site-packages'] |
Server time: | Fri, 29 Mar 2024 15:54:34 +0000 |
/home/sanasho1/virtualenv/website/3.11/lib/python3.11/site-packages/django/core/handlers/exception.py
, line 55, in inner
return inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | DisallowedHost("Invalid HTTP_HOST header: 'www.sana-shop.ir'. You may need to add 'www.sana-shop.ir' to ALLOWED_HOSTS.") |
get_response | <SecurityMiddleware get_response=convert_exception_to_response.<locals>.inner> |
request | <WSGIRequest: GET '/tag/%25d8%25ae%25d8%25b1%25db%258c%25d8%25af-%25d8%25a7%25d8%25b1%25d8%25b2%25d8%25a7%25d9%2586-%25d9%2584%25d9%2588%25d8%25b3%25d8%25aa%25d8%25b1-%25d8%25a8%25d8%25b1%25d9%2586%25d8%25b2%25db%258c/'> |
/home/sanasho1/virtualenv/website/3.11/lib/python3.11/site-packages/django/utils/deprecation.py
, line 133, in __call__
def __call__(self, request):
# Exit out to async mode, if needed
if iscoroutinefunction(self):
return self.__acall__(request)
response = None
if hasattr(self, "process_request"):
response = self.process_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
response = response or self.get_response(request)
if hasattr(self, "process_response"):
response = self.process_response(request, response)
return response
async def __acall__(self, request):
Variable | Value |
---|---|
request | <WSGIRequest: GET '/tag/%25d8%25ae%25d8%25b1%25db%258c%25d8%25af-%25d8%25a7%25d8%25b1%25d8%25b2%25d8%25a7%25d9%2586-%25d9%2584%25d9%2588%25d8%25b3%25d8%25aa%25d8%25b1-%25d8%25a8%25d8%25b1%25d9%2586%25d8%25b2%25db%258c/'> |
response | None |
self | <SecurityMiddleware get_response=convert_exception_to_response.<locals>.inner> |
/home/sanasho1/virtualenv/website/3.11/lib/python3.11/site-packages/django/middleware/security.py
, line 28, in process_request
def process_request(self, request):
path = request.path.lstrip("/")
if (
self.redirect
and not request.is_secure()
and not any(pattern.search(path) for pattern in self.redirect_exempt)
):
host = self.redirect_host or request.get_host() ^^^^^^^^^^^^^^^^^^…
return HttpResponsePermanentRedirect(
"https://%s%s" % (host, request.get_full_path())
)
def process_response(self, request, response):
if (
Variable | Value |
---|---|
path | 'tag/%d8%ae%d8%b1%db%8c%d8%af-%d8%a7%d8%b1%d8%b2%d8%a7%d9%86-%d9%84%d9%88%d8%b3%d8%aa%d8%b1-%d8%a8%d8%b1%d9%86%d8%b2%db%8c/' |
request | <WSGIRequest: GET '/tag/%25d8%25ae%25d8%25b1%25db%258c%25d8%25af-%25d8%25a7%25d8%25b1%25d8%25b2%25d8%25a7%25d9%2586-%25d9%2584%25d9%2588%25d8%25b3%25d8%25aa%25d8%25b1-%25d8%25a8%25d8%25b1%25d9%2586%25d8%25b2%25db%258c/'> |
self | <SecurityMiddleware get_response=convert_exception_to_response.<locals>.inner> |
/home/sanasho1/virtualenv/website/3.11/lib/python3.11/site-packages/django/http/request.py
, line 150, in get_host
msg = "Invalid HTTP_HOST header: %r." % host
if domain:
msg += " You may need to add %r to ALLOWED_HOSTS." % domain
else:
msg += (
" The domain name provided is not valid according to RFC 1034/1035."
)
raise DisallowedHost(msg) ^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_port(self):
"""Return the port number for the request as a string."""
if settings.USE_X_FORWARDED_PORT and "HTTP_X_FORWARDED_PORT" in self.META:
port = self.META["HTTP_X_FORWARDED_PORT"]
else:
Variable | Value |
---|---|
allowed_hosts | ['sana-shop.ir'] |
domain | 'www.sana-shop.ir' |
host | 'www.sana-shop.ir' |
msg | ("Invalid HTTP_HOST header: 'www.sana-shop.ir'. You may need to add " "'www.sana-shop.ir' to ALLOWED_HOSTS.") |
port | '' |
self | <WSGIRequest: GET '/tag/%25d8%25ae%25d8%25b1%25db%258c%25d8%25af-%25d8%25a7%25d8%25b1%25d8%25b2%25d8%25a7%25d9%2586-%25d9%2584%25d9%2588%25d8%25b3%25d8%25aa%25d8%25b1-%25d8%25a8%25d8%25b1%25d9%2586%25d8%25b2%25db%258c/'> |
[unable to retrieve the current user]
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_HOST | 'www.sana-shop.ir' |
HTTP_USER_AGENT | 'claudebot' |
PATH_INFO | '/tag/%d8%ae%d8%b1%db%8c%d8%af-%d8%a7%d8%b1%d8%b2%d8%a7%d9%86-%d9%84%d9%88%d8%b3%d8%aa%d8%b1-%d8%a8%d8%b1%d9%86%d8%b2%db%8c/' |
QUERY_STRING | '' |
REMOTE_ADDR | '54.196.52.45' |
REMOTE_PORT | '56938' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'http' |
REQUEST_URI | '/tag/%d8%ae%d8%b1%db%8c%d8%af-%d8%a7%d8%b1%d8%b2%d8%a7%d9%86-%d9%84%d9%88%d8%b3%d8%aa%d8%b1-%d8%a8%d8%b1%d9%86%d8%b2%db%8c/' |
SCRIPT_NAME | '' |
SCRIPT_URI | 'http://www.sana-shop.ir/tag/خرÛ\x8cد-ارزاÙ\x86-Ù\x84Ù\x88ستر-برÙ\x86زÛ\x8c/' |
SCRIPT_URL | '/tag/خرÛ\x8cد-ارزاÙ\x86-Ù\x84Ù\x88ستر-برÙ\x86زÛ\x8c/' |
SERVER_ADDR | '195.214.235.180' |
SERVER_ADMIN | 'webmaster@sana-shop.ir' |
SERVER_NAME | 'www.sana-shop.ir' |
SERVER_PORT | '80' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'LiteSpeed' |
X-LSCACHE | 'on' |
wsgi.errors | <_io.TextIOWrapper name='<stderr>' mode='w' encoding='ascii'> |
wsgi.file_wrapper | <class 'lsapi_wsgi.FileWrapper'> |
wsgi.input | <lsapi_wsgi.InputStream object at 0x7f9438f3b950> |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
sperso.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['sana-shop.ir'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'accounts.User' |
BASE_DIR | PosixPath('/home/sanasho1/website') |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CKEDITOR_CONFIGS | {'default': {'toolbar': 'full'}} |
CKEDITOR_UPLOAD_PATH | 'ck/' |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_MASKED | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | True |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': PosixPath('/home/sanasho1/website/db.sqlite3'), 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
DATETIME_FORMAT | 'N j, Y, P' |
DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
DATE_FORMAT | 'N j, Y' |
DATE_INPUT_FORMATS | ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
DEFAULT_AUTO_FIELD | 'django.db.models.BigAutoField' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'smtp.gmail.com' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | 'hoseinsahraei41@gmail.com' |
EMAIL_PORT | 587 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | True |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
FILE_UPLOAD_PERMISSIONS | 420 |
FILE_UPLOAD_TEMP_DIR | None |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | [] |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['jazzmin', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'home.apps.HomeConfig', 'accounts.apps.AccountsConfig', 'cart.apps.CartConfig', 'order.apps.OrderConfig', 'ckeditor', 'ckeditor_uploader', 'taggit', 'sorl.thumbnail', 'django_jalali', 'django_filters', 'django.contrib.humanize'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur'] |
LANGUAGE_CODE | 'en-us' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LOCALE_PATHS | [] |
LOGGING | {} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | 'home/sanasho1/public_html/media' |
MEDIA_URL | '/media/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django_browser_reload.middleware.BrowserReloadMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PREPEND_WWW | False |
ROOT_URLCONF | 'sperso.urls' |
SECRET_KEY | '********************' |
SECRET_KEY_FALLBACKS | '********************' |
SECURE_BROWSER_XSS_FILTER | True |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_CROSS_ORIGIN_OPENER_POLICY | 'same-origin' |
SECURE_HSTS_INCLUDE_SUBDOMAINS | True |
SECURE_HSTS_PRELOAD | True |
SECURE_HSTS_SECONDS | 86400 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | True |
SERVER_EMAIL | 'root@localhost' |
SESSION_CACHE_ALIAS | 'default' |
SESSION_COOKIE_AGE | 1209600 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | 'sessionid' |
SESSION_COOKIE_PATH | '/' |
SESSION_COOKIE_SAMESITE | 'Lax' |
SESSION_COOKIE_SECURE | True |
SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_SAVE_EVERY_REQUEST | False |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'sperso.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | (PosixPath('/home/sanasho1/website/static'),) |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | 'home/sanasho1/public_html/static' |
STATIC_URL | '/static/' |
STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
TAGGIT_CASE_INSENSITIVE | True |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/home/sanasho1/website/templates')], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'UTC' |
USE_DEPRECATED_PYTZ | False |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'sperso.wsgi.application' |
X_FRAME_OPTIONS | 'DENY' |
YEAR_MONTH_FORMAT | 'F Y' |
You’re seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard page generated by the handler for this status code.