Я пытаюсь создать промежуточное программное обеспечение в своем проекте Django, которое перенаправляет пользователя на ссылку «https», если его запрос изначально не был https. Приведенный ниже код не перенаправляет пользователя ни в одном из тестов, которые я запускал (например, пользователь вводит «www.example.com», «http://example.com,', http://www.example.com ', так далее.
Может ли кто-нибудь из вас обнаружить проблему с этим кодом? Обычно я бы использовал операторы печати, чтобы увидеть, какой путь установлен, но я не могу сделать это на своем действующем сервере (или, по крайней мере, я не знаю, как это сделать):
from django.http import HttpResponseRedirect
from django.utils.deprecation import MiddlewareMixin
class RedirectMiddleware(MiddlewareMixin):
def process_request(self, request):
host = request.get_host()
if host == 'www.example.com' or 'example.com':
path = request.build_absolute_uri()
domain_parts = path.split('.')
if domain_parts[0] == 'http://www':
path = path.replace("http://www","https://www")
return HttpResponseRedirect(path)
elif domain_parts[0] == 'www':
path = path.replace("www","https://www")
return HttpResponseRedirect(path)
elif domain_parts[0] == 'http://example':
path = path.replace("http","https")
return HttpResponseRedirect(path)
elif domain_parts[0] == 'example':
path = path.replace("example","https://www.example")
return HttpResponseRedirect(path)
else:
pass
else:
pass
Еще раз спасибо ребята
SECURE_SSL_REDIRECT
. - person Kevin Christopher Henry   schedule 28.03.2018