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.