soy bastante nuevo en Django y tratando un par de experimentos sencillos para obtener los pies mojados. Estoy ejecutando django 1.0, apache2 prefork y mod_wsgi. Estoy tratando de construir un sitio con la siguiente estructura urlDjango - proteger algunos caminos web con autenticación básica
/
/members
/admin
la raíz es básicamente un área pública.
la ruta de los miembros deben ser protegidos mediante la autenticación básica (probablemente autenticado por Apache)
la vía de administración debe protegerse utilizando el construido en la autenticación de Django.
siguiendo los ejemplos de la documentación que, básicamente, puede proteger a todo el sitio con la autenticación básica, pero eso no es lo que quiero.
excepto de configuración de host virtual:
WSGIScriptAlias//django/rc/apache/django.wsgi
<Directory /django/rc/apache>
AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/django/_HTPASSWD/.htpasswd"
Require valid-user
# Order allow,deny
# Allow from all
</Directory>
¿Puede alguien ayudarme a apuntar en la dirección correcta (o de plano dime = P) sobre cómo hacer esto posible?
gracias
edición: Después de jugar un poco he descubierto que puedo hacer algo como:
WSGIScriptAlias//django/rc/apache/django.wsgi
<Directory /django/rc/apache>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias /members /django/rc/apache_httpauth/django.wsgi
<Directory /django/rc/apache_httpauth>
AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/django/_HTPASSWD/.htpasswd"
Require valid-user
</Directory>
El archivo django.wsgi es básicamente el mismo archivo copiado en otro directorio por lo que WSGIScriptAlias es diferente. Es hack-ish pero funciona ..
¿Hay una mejor manera de hacer lo que me gustaría?
¿Hay algún inconveniente para hacerlo así?
gracias
el sitio entero se realiza en Django, no jsut la sección de administración. si saco WSGIScriptAlias, ¿cómo sabe apache cómo ejecutar el sitio django? es decir/members es una ruta web que se define en urls.py. no existe físicamente en el sistema de archivos. por cierto recuerdo haber leído cosas en tu blog de referencia en la materia Django en el pasado. solo quería decir thx. –
Aún conserva las primeras WSGIScriptAlias para montar la aplicación en el sitio raíz, simplemente elimine la URL secundaria. Presumo que finalmente abordan la misma solicitud. La directiva de ubicación solo aplica la restricción a ese subconjunto de URL para la aplicación principal. –
ahh no noté que especificó la directiva "Ubicación" en lugar de la directiva "Directorio". Lo intentaré mañana. ¡Gracias! –