Veremos dos posibilidades: Redirección permanente o Reescritura
Método de redirección permanente
El procedimiento será definir un
Virtualhost
para HTTPS y otro para HTTP. Desde el Virtualhost
HTTP fijaremos una redirección permanente hacia HTTPS.# /etc/apache2/sites-enabled/000-default <VirtualHost *:80> ServerName www.ejemplo.com ServerAdmin webmaster@ejemplo.com Redirect permanent / https://www.ejemplo.com </VirtualHost>
Método de reescritura
Para que este método funcione, deberemos asegurarnos de tener instalado el módulo
mod_rewrite
. En caso de estar presente, el módulo se puede instalar mediante el siguiente comando (para que sea operativo, después habrá que reiniciar apache).# a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
Una vez instalado el módulo mod_rewrite
ya estamos en disposición de preparar la reescritura de todo el sitio web añadiendo el siguiente código dentro del correspondiente VirtualHost de HTTP o, alternativamente, en un fichero .htaccess
en la raíz del sitio web.RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}O, alternativamente
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.dominio.com/$1 [R,L]Si se quiere redireccionar el contenido de una carpeta específica
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} folder RewriteRule ^(.*)$ https://www.dominio.com/folder/$1 [R,L]Finalmente, si lo que se quiere redireccionar es únicamente una página concreta (por ejemplo, un formulario) podemos utilizar el siguiente código.
RewriteEngine On RewriteRule ^formulario\.html$ https://www.ejemplo.com/formulario.html [R=301,L]
2 comentarios:
Una pregunta, el redireccionamiento desde http me funcina bine, necesito hacer una redireccion desde una url https a una http pero no me lo toma de ninguna forma.
Hice lo siguiente y nada:
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{HTTPS} on
Quisiera hacer una redirección algo asi, desde http me funciona:
RewriteRule ^(.*)sonido/SDT__music_home.mp3$ http://statics.resources.misitio.com/sonido/SDT__music_home.mp3 [R=301,NC]
y no me funciona con nada.
agradezco vuestra respuesta
Hola Anónimo
En entornos Debian/Ubuntu, dentro de la estructura de los ficheros de configuración de Apache2, existe un lugar donde se definen los hosts HTTP (/etc/apache2/sites-enabled/000-default) y otro donde se configuran los hosts HTTPS (/etc/apache2/sites-enabled/001-ssl).
La redirección que propones deberías de hacerla dentro del fichero de definición de los hosts HTTPS (/etc/apache2/sites-enabled/001-ssl).
Saludos
Publicar un comentario