Estoy tratando de proteger el directorio ~/public_html/dev
usando http auth basic, pero para hacerlo seguro quiero ejecutarlo a través de ssl.Hacer autenticación HTTP a través de HTTPS con reescritura de URL
La sección central del siguiente archivo .htaccess
cambia a https si el URI de solicitud comienza con /dev
y funciona.
La última sección del archivo funciona igual de bien pero no funciona correctamente con la redirección de https.
Básicamente quiero poder escribir http://www.example.com/dev/some_sub_dir/
y ser redirigido a https://www.example.com/dev/some_sub_dir/
y solicitar el nombre de usuario y la contraseña de http auth.
Lo que ocurre actualmente es que si me meto en http://www.example.com/dev/some_sub_dir/
me piden un nombre de usuario y una contraseña en el puerto 80, y luego vuelvo a preguntarme por el puerto 443. Entonces mis credenciales se envían dos veces, una a encriptado Hacer que toda la URL de https reescriba un poco sin sentido.
La razón para hacer esto es para que no pueda enviar accidentalmente mi usuario/pase sobre http; https siempre se usará para acceder al directorio /dev
.
El .htaccess
se encuentra en el directorio ~/public_html/dev
.
# Rewrite Rules for example.com RewriteEngine On RewriteBase/ # force /dev over https RewriteCond %{HTTPS} !on RewriteCond %{REQUEST_URI} ^/dev RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} # do auth AuthType Basic AuthName "dev" AuthUserFile /home/matt/public_html/dev/.htpasswd Require valid-user
que es bastante escurridizo – Matthew
Sí, probablemente no sea una solución óptima, pero después de cuatro horas de encontrarme en la misma situación que tú, fue el mejor Pude encontrar :) – siliconrockstar
Los probé todos y luego algunos; esta solución funcionó lo mejor para mí. Eliminé la directiva FilesMatch y luego verifiqué todo, lo que funciona especialmente bien si el visitante no define un archivo, p. index.php. http://www.askapache.com/htaccess/apache-ssl-in-htaccess-examples.html también le dará mucha información buena; basado en esto también incluí SSLOptions + StrictRequire – Praesagus