Ho Django in esecuzione dietro Nginx con fastcgi_pass. Corro Django in un sotto-percorso come "/ django/sample".Django Admin + FORCE_SCRIPT_NAME + Login reindirizzati in modo errato
location /django/sample {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
Io uso FORCE_SCRIPT_NAME nel modulo impostazioni Django che sembra risolvere tutti i problemi che ho avuto per quanto riguarda in esecuzione ad un sottotracciato.
in settings.py:
FORCE_SCRIPT_NAME = "/django/sample/"
Vado qui per effettuare il login con admin (e correttamente ottenere l'interfaccia utente admin):
http://server/django/sample/admin
Ma quando a mio avviso, che reindirizza a:
http://server/django/sample/django/sample/admin
Ciò che è veramente strano è che se cambio FORCE_SCRIPT_NAME = "" il login funziona.
MA, allora tutti i link nella pagina di amministrazione sono/admin, non/django/campione/admin/
Che diamine mi manca? L'impostazione FORCE_SCRIPT_NAME = "/ django/sample /" sembra risolvere tutto eccetto il login dell'amministratore.
Qualche idea?
UPDATE:
Ho anche provato ad utilizzare fastcgi_split_path_info in conf nginx (e togliere FORCE_SCRIPT_NAME nelle impostazioni). Ancora una volta che corregge tutti i problemi del percorso tranne il reindirizzamento dell'accesso all'amministratore.
conf come questo:
location /django/sample {
fastcgi_split_path_info ^(/django/sample)(.*)$;
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
So che è stato qualche anno più tardi ma ti dico che sto avendo lo stesso problema. Questo è # $ * @ $ (! Eseguo diversi test nel server di sviluppo e funziona perfettamente, ma non appena si passa alla produzione alcuni link iniziano a rompersi, come ad esempio Redirect. Questo mi sta facendo impazzire. sono stati sviluppati meglio –