Redirigir dominio desde http a conexión segura (https)
Dos de los sitios que hacen e-commerce -de la empresa en la que trabajo- han estado (desde que surgieron) como un subdominio del dominio principal; sin embargo, a partir de este mes es necesario migrarlos a su propio dominio. Por suerte, lo prevà y la base de datos está alojada en cada dominio, serÃa cuestión de mover los archivos nada más.
Un asunto que no sabÃa como conseguir apropiadamente, es la redireccion exacta de cada URL indexada en los buscadores (cosa que es primordial sobre todo para sitios haciendo comercio); lo que pensaba era hacer una redirección del subdominio hacia el dominio principal del sitio en su nuevo servidor.
Al ser un sitio que sirve a partir de operaciones con tarjetas de crédito e información de los clientes, necesita pasar por un certificado de seguridad (lo que conocemos por conexión segura https) y el manejo desde un subdominio se me hacÃa más fácil haciendo redirecciones a partir de un .php; pero, haciéndolo desde la raÃz del sitio, núnca lo habÃa hecho.
Para mi fortuna, le comenté a un amigo lo que estaba haciendo -a través del Talk (IM) de Google- y me sugirió resolver el asunto con expresiones regulares desde un .htaccess.
Primero convertir cualquier dirección http a https:
RewriteEngine On* Este código va en la raÃz del nuevo dominio.
RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R]
RewriteRule ^(.*) https://nuevo-dominio.com/$1 [R]
Lo que se entiende a simple vista es que para una condición en la que estamos en una dirección http (sin conexión segura), reescribimos (redirigimos) la url hacia una con conexión segura (https).
Si te fijaste, hay una lÃnea con el sÃmbolo de numero (#) (eso significa que la estamos comentando, no será interpretada) que indica que %{SERVER_NAME} escribirá SIEMPRE la dirección incluyendo “www“. Sin embargo, debido a que el SSL del sitio en cuestión está gestionado para una dirección sin “www“, pues lo escribà a mano: https://nuevo-dominio.com.
Apoyado en la información que me dió mi amigo y datos que encontré en sitios visitados desde Google, solucioné el asunto con un par de lÃneas dentro del .htaccess para que las URL guardadas en caché o tomadas desde un buscador me llevaran al punto exacto, pero en el nuevo dominio.
RewriteEngine on* Este código va en el dominio anterior (en la raÃz).
RewriteCond %{http_host} ^dominio-indexado\.com [nc]
RewriteRule ^subdominio/(.*)$ https://nuevo-dominio.com/$1 [r=301,nc]
RewriteCond %{http_host} ^www\.dominio-indexado\.com [nc]
RewriteRule ^subdominio/(.*)$ https://nuevo-dominio.com/$1 [r=301,nc]
En menos de media hora tenÃa resuelto mi problema.
Para casos en los que se pasen variables por URL, se puede hacer también, sólo que es preciso utilizar la misma estructura.
Espero que esta información te sirva



October 4th, 2007 at 9:32 am
Muy buena info, no se me ah presentado la situacion; pero nunca esta de mas el material.
Salu2
October 4th, 2007 at 2:15 pm
Gracias por tu visita Jorgelig, eres bienvenido. Cierto, no es frecuente necesitar esto, pero saber donde encontrarlo a la hora de une emergencia, es lo que agrega valor a tu trabajo
October 5th, 2007 at 5:16 pm
Buen tip, Pedro; aunque no me he visto en la necesidad de hacerlo es posible que pronto me toque (para cambiar mi blog de dominio). Algo de esto habÃa leÃdo cuando averiguaba sobre .htacesss y posicionamiento, pero esto está muy claro. Mil gracias
October 5th, 2007 at 5:36 pm
Saludos The Fricky,
Eres bienvenido. Gracias por comentar. Esa es la idea, que le sea de beneficio a muchos que como yo -en ese momento- necesitan saber cómo hacerlo.
Sobre todo la parte de hacer que las páginas indexadas vayan al nuevo dominio (sin olvidar que la estructura del enlace debe ser la misma).