簡體   English   中英

指定 HTTP 或 HTTPS 時 Django 重定向不起作用

[英]Django redirect not working when specifying HTTP or HTTPS

我不確定為什么會發生這種情況,但是當我在重定向中指定 HTTP 或 HTTPS 作為我的完整 URL 時,我的域名后面的部分會附加到我的當前域中。

例如:如果我重定向到https://www.external_site.com/error/page/hi_there.html它將轉到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 反向代理(反向代理在這種情況下只是一個反向代理,除了將外部域重寫為內部域之外,沒有特殊規則或其他任何東西。)

我發現了這個問題。

它與“響應標頭中的 IIS 反向重寫主機”ARR 設置有關。 我通過轉到“IIS 管理器 -> 機器或站點(我使用機器,因此它適用於所有站點) -> 應用程序請求路由緩存 -> 服務器代理設置並取消選中“響應標頭中的反向重寫主機”復選框來禁用它“

現在它正在正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM