我有Django與fastcgi_pass一起運行在Nginx後面。我在像「/ django/sample」這樣的子路徑上運行Django。Django Admin + FORCE_SCRIPT_NAME +登錄不正確地重定向
location /django/sample {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
我在django設置模塊中使用FORCE_SCRIPT_NAME,它似乎修復了我在運行子路徑時遇到的所有問題。
FORCE_SCRIPT_NAME = "/django/sample/"
我去這裏與管理員登錄(和正確地得到管理界面):
http://server/django/sample/admin
但是,當我提出,它重定向到:
settings.py中
http://server/django/sample/django/sample/admin
真奇怪的是,如果我更改FORCE_SCRIPT_NAME =「」登錄的作品。
BUT,那麼所有的管理頁面的鏈接都/管理,而不是/ Django的/樣品/管理/
到底什麼我缺少什麼?設置FORCE_SCRIPT_NAME =「/ django/sample /」似乎修復了除管理員登錄之外的所有內容。
任何想法?
UPDATE:
我在nginx的使用CONF也fastcgi_split_path_info嘗試(並採取了FORCE_SCRIPT_NAME中設置)。再次修復除管理員登錄重定向之外的所有路徑問題。
的conf這樣的:
location /django/sample {
fastcgi_split_path_info ^(/django/sample)(.*)$;
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
我知道它已經過了幾年,但我告訴你我有同樣的問題。這是#$ * @ $(!我在開發服務器上進行了幾次測試,並且它完美地工作,但是一旦它轉換到生產環境,一些鏈接就會開始崩潰,例如重定向,這讓我瘋狂。得到了較好的發展。 –