Estoy tratando de redirigir la raíz del sitio de Django al panel de administración de Django, y en su mayoría lo he puesto en funcionamiento. Sin embargo, me he dado cuenta de que a menos que haya una barra inclinada en la URL del proyecto, los enlaces en la página no incluyen la carpeta del proyecto, y en su lugar intentan encontrar las aplicaciones en la raíz del sitio.Redireccionando la raíz de Django al panel de administración
Entonces, supongo que tengo un proyecto foo
, y una aplicación bar
. Si visita http://server/foo/
(con una barra inclinada), todo funciona bien, y los enlaces de la página van al http://server/foo/bar
. Sin embargo, si uno visita http://server/foo
, los enlaces generados van a http://server/bar
, lo que genera un error 404.
Si fijo el WSGIScriptAlias
para apuntar a /foo/
en lugar de /foo
, daría un error 404 si navegaba a /foo
. Intenté forzar una barra inclinada en el conf Apache con Redirect, pero acabo generando una redirección recursiva (http://server/foo//////...
). Todavía no he intentado utilizar un archivo .htaccess, pero sospecho que podría suceder lo mismo.
he intentado lo mismo en urls.py
, sin embargo:
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
que también trató simplemente añadiendo una barra a todas las URL de Django, así:
url(r'^(.*)/', include(admin.site.urls))
Pero no coincide con nada todo en la carpeta raíz del proyecto (aunque si navega hacia la aplicación, eso parece funcionar bien).
estoy usando Apache 2.2 con mod_wsgi, aquí es la configuración:
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>
Y este es el urls.py
que en su mayoría funciona:
urlpatterns = patterns('',
url(r'^', include(admin.site.urls)),
)
me he asegurado APPEND_SLASH
se establece en Es cierto, pero no parece funcionar en la carpeta del proyecto raíz.
¿Por qué '/ foo' se redirige a'/bar'? ¿Dónde está sucediendo esta redirección? –
No es realmente '/ foo' el que se redirecciona a'/bar', sino que las URL generadas en la página van a '/ bar' en lugar de'/foo/bar'. – Hannele