.htaccess: Redirigir algunas subpáginas a una nueva subpágina, todas las demás a una nueva página principal

Oct 21 2019

He buscado SO para respuestas pero no he encontrado ninguna que coincida con mis criterios. Estoy moviendo una tienda web a un nuevo dominio (tiene miles de productos). Para las páginas con algunas clasificaciones decentes, quiero redirigirlas a sus nuevas subpáginas respectivas. Todas las demás páginas las quiero redirigir a la nueva página principal. Estoy tratando de lograr esto usando .htaccess

shopold.com/cat/product1.html to shopnew.com/category/product1
shopold.com/cat/product2.html to shopnew.com/category/product2
All other pages from shopold.com to shopnew.com

¿Cuál sería la forma más sencilla de lograrlo?

Respuestas

2 anubhava Oct 21 2019 at 16:48

Puede utilizar estas reglas en la raíz de su sitio .htaccess:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?shopold\.com$ [NC] RewriteRule ^cat/product1\.html$ http://shopnew.com/category/product1 [L,NC,R=301]

RewriteRule ^cat/product2\.html$ http://shopnew.com/category/product2 [L,NC,R=301]

RewriteRule ^ http://shopnew.com/? [L,NC,R=301]

En general, mantenga las reglas de productos conocidos en la parte superior y mantenga la regla general general en la parte inferior.


Aquí hay una forma de comparar sin expresiones regulares REQUEST_URI:

RewriteCond %{REQUEST_URI} =/cat/product1.html
RewriteRule ^ http://shopnew.com/category/product1 [L,NC,R=301]

Desafortunadamente, requiere el uso de un RewriteCondpatrón ya RewriteRuleque requiere una expresión regular.