Estoy trabajando en un sitio de Wordpress, y mis páginas están utilizando una estructura de enlace permanente que mod_rewrites para que parezcan directorios. Para algunas páginas, quiero usar la Autenticación básica para proteger con contraseña algunas de las páginas. ¿Cómo escribiría esto en mi archivo .htaccess? ¿Estoy protegiendo el archivo o la dirección reescrita?.htaccess, mod_rewrite y autenticación básica
Respuesta
No necesitará mod_rewrite para esto, es de esperar, esto debería hacer el truco:
SetEnvIfNoCase Request_URI ^/some/path/to/protect require_auth=true
SetEnvIfNoCase Request_URI ^/another/protected/path require_auth=true
# Auth stuff
AuthUserFile /var/www/htpasswd
AuthName "Password Protected"
AuthType Basic
# Setup a deny/allow
Order Deny,Allow
# Deny from everyone
Deny from all
# except if either of these are satisfied
Satisfy any
# 1. a valid authenticated user
Require valid-user
# or 2. the "require_auth" var is NOT set
Allow from env=!require_auth
El mod_auth y módulos mod_env deben tener precidence sobre mod_rewrite, por lo que su estructura de directorios falsa debe permanecer igual . Solo debe completar un SetEnvIfNoCase Request_URI ^/some/path/to/protect require_auth=true
para cada uno, luego complete el resto de las autorizaciones para satisfacer sus necesidades.
Bueno, no entiendo completamente por qué lo hizo, pero ... ¡eso lo hizo! Muchas gracias! ¡Estaba sudando esto durante la mitad del día! – Imaginary
@Imaginary Esencialmente, si la variable de entorno 'require_auth' está * no * establecida, no hay necesidad de autenticación. Las directivas 'SetEnvIfNoCase' en la parte superior establece esa variable si la solicitud es para ciertos directorios (si existen o no). –
¡Creo que lo tengo! Muy claro. ¡Gracias de nuevo! – Imaginary
El único problema que tengo con esta solución es que al hacer clic en el botón cancelar se mostrará la página protegida. Intenté resolver esto usando:
RewriteCond %{REMOTE_USER} !user
RewriteRule ^/protected-page /unauthenticated-page [R=401]
Pero eso no funcionó. No estoy seguro por qué.
para resolver el problema rápida y sucia que añade
ErrorDocument 401 "You don't have access."
Para crear un redireccionamiento que utiliza este
ErrorDocument 401 '<html><head><meta http-equiv="refresh" content="0; url=/unauthenticated-page" /></head><body></body></html>'
Para aquellos que vinieron aquí con el mismo problema que yo, con .htaccess como esto
AuthType Basic
AuthName "some_name"
AuthUserFile "/path/to/password/passwd"
require valid-user
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
reglas anteriores no están funcionando como esperaba (autorizar, vuelva a grabar)
debido Directiva fusión de orden ("Si" se fusiona última)
gracias a comment from Alek señalar eso
así que cuando me quita soportes IfModule, las reglas han comenzado a trabajar para yo.
- 1. .htaccess autenticación básica por el host virtual?
- 2. EventSource y autenticación http básica
- 3. Autenticación HTTP básica, usando python
- 4. Son ifModule mod_rewrite etiquetas redundantes en .htaccess mod_rewrite archivos
- 5. Wcf Autenticación básica
- 6. Autenticación básica con XMLHTTPRequest
- 7. Autenticación HTTP condicional básica
- 8. Autenticación básica con Flash
- 9. ASIHTTPRequest autenticación básica no
- 10. urllib2 autenticación básica oddites
- 11. HttpClient 4.2, Autenticación básica y AuthScope
- 12. Python urllib2, autenticación HTTP básica y tr.im
- 13. Servicio WCF REST autohospedado y autenticación básica
- 14. Autenticación básica con jQuery.ajax request y jsonp
- 15. Ajax: autenticación básica de HTTP y cookie de autenticación
- 16. ¿Excluyendo un subdominio de .htaccess mod_rewrite rules?
- 17. mod_rewrite RewriteCond basado en Last-modified? (.htaccess)
- 18. .htaccess problema de novato usando mod_rewrite
- 19. detener .htaccess mod_rewrite en un directorio
- 20. Autenticación de autenticación básica de CakePHP 2
- 21. mod_rewrite y .htaccess - dejar de escribir si existe script/archivo
- 22. URL semánticas para archivos HTML estáticos con .htaccess y mod_rewrite
- 23. ¿Usar mod_rewrite y mod_alias (redireccionar 301) juntos en .htaccess?
- 24. Una herramienta para depurar y probar las directivas mod_rewrite (.htaccess)
- 25. Solicitudes HTTP con autenticación básica
- 26. Autenticación básica de Windows Azure
- 27. Python urllib2 autenticación básica Problema
- 28. Autenticación básica con Qt (QNetworkAccessManager)
- 29. Objetivo-c autenticación básica HTTP
- 30. Uso de la autenticación básica (htaccess) para restringir el acceso a una URL específica
Lo único que estuvo a punto de tener éxito es que hice un directorio con el mismo nombre que la URL amigable (es decir,/friendlyurl /) y puse un archivo .htaccess allí solicitando la autenticación. Yendo a la página, me pidieron credenciales y luego me enviaron a un error prohibido 403. – Imaginary