Django редирект не работает при указании HTTP или HTTPS - PullRequest
0 голосов
/ 26 февраля 2020

Я не уверен, почему это происходит, но когда я указываю HTTP или HTTPS в качестве полного URL-адреса в перенаправлении, часть после моего доменного имени добавляется к моему текущему домену.

Для пример: если я перенаправлю на https://www.external_site.com / error / page / hi_there. html будет go до https://www.currentdomain.com/error/hi_there/html

return redirect('https://www.external_site.com/error/page/hi_there.html')

Но, когда я удаляю часть https: (но оставляю //), перенаправление работает должным образом:

return redirect('//www.external_site.com/error/page/hi_there.html')

Я использую Django v 1.11.23, но также проверял его на Django 2.

Django работает на Apache на mod_wsgi и проходит через обратный прокси-сервер IIS (обратный прокси-сервер - это просто обратный прокси-сервер в в этом случае нет специальных правил или чего-либо еще, кроме как переписать внешний домен во внутренний домен.)

1 Ответ

0 голосов
/ 27 февраля 2020

Я нашел проблему.

Относится к параметру ARR «Хост обратного перезаписи IIS в заголовках ответа». Я отключил его, выбрав «Диспетчер IIS -> Компьютер или сайт (я использовал Компьютер, чтобы он применялся ко всем сайтам) -> Кэш маршрутизации запросов приложений -> Настройки прокси-сервера сервера и снимите флажок« Обратный перезаписать хост в заголовках ответов »«

Теперь все работает как надо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...