Hay dos métodos para redigir una conexión HTTP a HTTPS en un servidor Apache:
1.- Por virtual host
2.- Por expresiones regulares en .htaccess
Redirección por Virtual Host
Si es por virtual host sólo hay que añadir un virtualhost en el puerto 80 que redirija al puerto 443 y el virtual host que se debe administrar es el del puerto 443.
Suponiendo que tenemos el servidor en la dirección 127.0.0.1 y su alias (el nombre del host) es foo.com.local, habría que añadir el siguiente nodo en el archivo de configuración de los virtual hosts (más información de los virtual hosts).
<VirtualHost 127.0.0.1:443>
...
</VirtualHost>
<VirtualHost 127.0.0.1:80>
ServerName foo.com.local
Redirect / https://foo.com.local/
</VirtualHost>
Redirección por .htaccess
Se usan expresiones regulares para que reescriba la misma dirección pero usando el protocolo HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.