Habrás oído hablar de las redirecciones 301 en urls con parámetros y como ayudan a reconducir a los visitantes de tu web de secciones antiguas a las nuevas sin que se pierdan visitas ni la indexación en buscadores.
Es tan fácil como crear una línea en el htaccess de tu site por cada dirección url que haya que redirigir.
La estructura es la siguiente:
Redirect 301 (la instrucción que indica que la pagina se ha movido) /antiguo-directorio/antigua-pagina.htm (la ruta de carpeta y nombre de archivo original) http://dominio.com/nueva-url.htm (la nueva ruta de carpeta incluyendo el nombre de archivo definitivo).
Sería algo como este ejemplo:
Redirect 301 /antiguo-directorio/antigua-pagina.htm http://dominio.com/nueva-url.htm
Pero si usas un CMS antiguo o una programación con variables seguramente en algunas urls tendrás parámetros, algo como:
http://dominio.com/pagina-original.php?id=14
En ese caso la redirección 301 normal no funcionará. Para no perder indexación lo suyo es hacer las redirecciones 301 en urls con parámetros a otras que sean planas, o sea, amigables.
Se hace echando mano del módulo RewriteEngine mediante unas instrucciones como estas del ejemplo:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=14$
RewriteRule ^pagina-original.php$ http://dominio.com/pagina-nueva/ [L,R=301]
En donde id=14 es tu parámetro original, pagina-original.php es la página de origen y http://dominio.com/pagina-nueva/ es la ruta nueva a la que quieres redirigir, sustituyelo en tu caso concreto y ya debería funcionar.
Esta y otros muchos tipos de redirecciones 301 las tienes en el magnífico post de Tomas De Teresa.
Como siempre quedan abiertos tus comentarios para lo que desees.