2010-12-01 31 views
12

He configurado un sitio de desarrollo y quiero protegerlo con contraseña para que solo los visitantes validados puedan ver el sitio. Todo bien y bien Me molesta, en mi versión local, ingresar mi nombre de usuario y contraseña. Entonces, sin cambiar el archivo htaccess entre mi copia local y la del sitio de desarrollo, ¿cómo protejo el sitio con contraseña, pero me permito acceder sin tener que ingresar mi nombre de usuario y contraseña?contraseña de htaccess proteger pero no en el host local

Respuesta

15

Algo como esto debe hacer el truco ..

Require valid-user 
Allow from 127.0.0.1 
Satisfy Any 

Desde: http://httpd.apache.org/docs/2.0/mod/core.html#satisfy

+2

hecho bien en el hombre. – Wez

+2

No estoy seguro de por qué, pero cuando utilicé esto la autenticación se descompone totalmente y deja que cualquiera vea el área protegida ... Quiero decir que funciona en mi sitio de desarrollo como debería, porque mi IP es 127.0.0.1, sin embargo, cuando la publico en el servidor en vivo, todavía me deja entrar ... no estoy seguro de por qué. – SublymeRick

+0

mismo problema aquí. hacer que el servidor de red esté abierto –

1

Suponiendo que está bien ingresar la contraseña en el sitio de desarrollo - coloque las directivas auth en VirtualHost en el sitio dev en lugar del archivo .htaccess - de esta manera su autenticación se procesa en un nivel de servidor en lugar de en un directorio nivel.

Además, la mayoría de los navegadores modernos probablemente guardar su contraseña para ti :)

0

Como se ha expuesto here podría utilizar allow from para permitir el acceso desde un host específico.

4

he descubierto una manera fresca para separar Linux a partir de archivos contraseña de Windows (porque se desarrollan en las ventanas y luego lanzamiento a un servidor de producción de Linux).

Acabo de escribir un script php con phpinfo(); en nuestro servidor local y prod y encontró el módulo apache 'mod_win32' para separarlos a los dos.

<IfModule mod_win32.c> 
    AuthUserFile C:\xampplite\your\windows\path.passwd 
</IfModule> 
<IfModule !mod_win32.c> 
    AuthUserFile "/your/linux/path/.passwd" 
</IfModule> 
AuthName "Please Login" 

RewriteEngine On 
AuthType Basic 
Require valid-user 
0

Dado que Apache 2.4 también se puede rodear la protección por contraseña por comparación con la variable de entorno como este HTTP_HOST:

<If "%{HTTP_HOST} != 'localhost'"> 
    # Your password protection code 
</If> 

Véase también la respuesta de Mark Fox a la pregunta sobre accessing the environment variables.

0

Ejemplo para Windows:

AuthType Basic 
AuthName "Password Protected Area" 
AuthUserFile C:/Apache24/htdocs/.htpasswd 
Require valid-user 
Order allow,deny 
Allow from localhost 
Allow from 127.0.0.1 
Satisfy Any 
Cuestiones relacionadas