2011-12-01 9 views
5

Necesito configurar apache en la ubicación inversa de coincidencia/administración, que se reescribe de forma predeterminada en el archivo htracess de drupal. Simplemente pedir autenticación HTTP para todo lo que no es/admin/*deshabilitar la autenticación HTTP para la ubicación reescrita específica

He intentado esto hasta ahora:

 < LocationMatch "^/(?!admin)" >
AuthName "Members Only" AuthType Basic AuthBasicProvider file AuthUserFile /path/to/.htpasswd Require valid-user
< /LocationMatch >

Respuesta

0

Usted puede intentar usar un SetEnvIf para comprobar REQUEST_URI de/admin, por lo que debe terminar con algo como esto:

# Set an environment variable if requesting /admin 
SetEnvIf Request_URI ^/admin/? DONT_NEED_AUTH=true 

# Setup your auth mechanism 
AuthName "Members Only" 
AuthType Basic 
AuthBasicProvider file 
AuthUserFile /path/to/.htpasswd 

# Set the allow/deny order 
Order Deny,Allow 

# Indicate that any of the following will satisfy the Deny/Allow 
Satisfy any 

# First off, deny from all 
Deny from all 

# Allow outright if this environment variable is set 
Allow from env=DONT_NEED_AUTH 

# or require a valid user 
Require valid-user 

Es posible que necesite para envolver que en el apropiado o etiquetas, si usted no está poniendo esto dentro de un archivo .htaccess.

+0

probé estas etiquetas de directorio internas para mi/var/www, lo que resulta en que requiera autenticación para cada solicitud –

+0

¿Ha intentado reemplazar el '/ admin' con lo que Drupal reescribe? No estoy seguro de qué orden de módulo tiene prioridad, mod-setenv o mod-rewrite –

+0

 SetEnvIf Request_URI "^/admin/?$" do_auth=1 AuthName "Members Only" AuthType Basic AuthBasicProvider file AuthUserFile /path/to/.htpasswd Require valid-user Order Allow,Deny Allow from all Deny from env=do_auth Satisfy Any 
funciona, pero no puedo revertirlo, eso es lo que necesito –

Cuestiones relacionadas