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, alternativamenteRewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.dominio.com/$1 [R,L]Si se quiere redireccionar el contenido de una carpeta específicaRewriteEngine 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