Sto provando a reindirizzare la root del sito Django al pannello di amministrazione di Django, e per lo più l'ho installato e funzionante. Tuttavia, ho notato che, a meno che non ci sia una barra finale nell'URL del progetto, i collegamenti nella pagina non includano la cartella del progetto, e invece provi a trovare le app nella root del sito.Reindirizzamento della root di Django al pannello di amministrazione
Quindi, dire che ho un progetto foo
e un'app bar
. Se visiti lo http://server/foo/
(con una barra finale), tutto funziona correttamente ei collegamenti nella pagina vanno a http://server/foo/bar
. Tuttavia, se si visita http://server/foo
, i collegamenti generati passano invece a http://server/bar
, che genera un errore 404.
Se ho impostato il WSGIScriptAlias
per puntare a /foo/
invece di /foo
, darebbe un errore 404 se ho navigato a /foo
. Ho provato a forzare una barra finale nella conf Apache con Redirect, ma finisco per generare un reindirizzamento ricorsivo (http://server/foo//////...
). Non ho ancora provato a usare un file .htaccess, ma sospetto che possa accadere la stessa cosa.
ho provato la stessa cosa in urls.py
, però:
url(r'^$', redirect_to, {'url': '/'}), # goes to server root http://server/
url(r'^$', redirect_to, {'url': 'foo/'}), # goes to http://server/foo/foo
url(r'^$', redirect_to, {'url': '/foo/'}), # infinite redirect
Ho provato anche semplicemente aggiungendo una barra per tutti gli URL Django in questo modo:
url(r'^(.*)/', include(admin.site.urls))
ma non riesce a corrispondere nulla tutto nella cartella principale del progetto (anche se se si accede all'app, sembra funzionare correttamente).
sto usando Apache 2.2 con mod_wsgi, qui è la configurazione:
Alias /static "C:/DJANGO~1/apps/django/django/contrib"
<Directory 'C:/DJANGO~1/apps/django/django/contrib'>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias /foo "C:/Djangostack/apps/django/scripts/django.wsgi"
<Directory 'C:/Djangostack/apps/django/scripts'>
Order allow,deny
Allow from all
</Directory>
e questa è la urls.py
che funziona per lo più:
urlpatterns = patterns('',
url(r'^', include(admin.site.urls)),
)
ho fatto in modo APPEND_SLASH
è impostato su Vero, ma non sembra funzionare nella cartella del progetto root.
Perché '/ foo' viene reindirizzato a'/bar'? Dove sta succedendo questo reindirizzamento? –
Non è davvero '/ foo' essere reindirizzato a'/bar' - invece, gli url generati nella pagina vanno a '/ bar' invece di'/foo/bar'. – Hannele