Redirección 301 al nuevo dominio con algunas direcciones Url específicas

0

Pregunta

Vi temas similares, pero no podía encontrar una respuesta práctica a mi problema.

Voy a mover mi sitio web antiguo a uno nuevo, y algunas direcciones están cambiando.

Me gustaría hacer un genérico redirección 301 para el nuevo dominio (porque la mayoría de las rutas son las mismas), mientras que de forma individual redirigir algunas direcciones Url.

Aquí es lo que tengo en mi antiguo sitio web .htaccess :

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^old\.com$ [OR]
  RewriteCond %{HTTP_HOST} ^www\.old\.com$
  RewriteRule (.*)$ https://new.com/$1 [R=301,L]

  Redirect 301 "/custom/url/" "https://new.com/my-custom-url"
</IfModule>

Pero los redireccionamientos 301 a : https://new.com/custom/url en lugar de https://new.com/my-custom-url

Algunos de mis URLs también tienen los parámetros de la URL me gustaría redirigir, tales como :

Redirect 301 "/brand.php?name=Example" "https://new.com/Example"
Redirect 301 "/brand.php?name=Example2" "https://new.com/another/url"

que no parecen funcionar tan bien.

Muchas gracias por su ayuda.

.htaccess redirect seo
2021-11-22 19:48:11
1

Mejor respuesta

2

Pero los redireccionamientos 301 a : https://new.com/custom/url en lugar de https://new.com/my-custom-url

Es debido a su específica redirigir regla aparece después de genérico. Por otra parte, se están mezclando reglas de mod_rewrite con mod_alias reglas y estos se invocan en momentos diferentes.

Tiene como esto:

RewriteEngine On

# redirect /brand.php?name=Example2 to new.com/another/Example2
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=(Example2) [NC]
RewriteRule ^brand\.php$ https://new.com/another/%1? [R=301,L,NE]

# redirect /brand.php?name=Example3 to new.com/category/Example3
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=(Example3) [NC]
RewriteRule ^brand\.php$ https://new.com/category/%1? [R=301,L,NE]

# generic redirect /brand.php?name=Example to new.com/Example2
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=([^&]+) [NC]
RewriteRule ^brand\.php$ https://new.com/%1? [R=301,L,NE]

# redirect custom URL
RewriteRule ^custom/url/ https://new.com/my-custom-url [R=301,L,NE,NC]

# redirect everything else
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteRule ^ https://new.com%{REQUEST_URI} [R=301,L]
2021-11-23 19:38:59

Funciona, gracias. Tengo otra pregunta : ¿Cómo puedo cambiar la dirección de la URL los parámetros de forma individual, en lugar de una regla genérica ? Por ejemplo, "old.com/brand.php?name=Example" a "new.com/brand/example" Y "old.com/brand.php?name=Example2" a "new.com/example2" ?
Malcom

Lo siento, no estoy seguro de cómo utilizar este. He intentado : RewriteCond %{THE_REQUEST} /brand\.php\?name=([mybrandname) [NC] RewriteRule ^ https://new.com/brands/mybrandname [R=301,L,NE] Que devuelve un error 500
Malcom

Tal vez no fui lo suficientemente claro, pero cada brand.php?name=something debe ser redirigido a un individuo URL. No estoy seguro de cómo editar su ejemplo en consecuencia. brand.php?name=brand1 debe ser redirigido a new.com/product-category/brand1 y brand.php?name=brand2 debe ser redirigido a new.com/brand2 (por ejemplo)
Malcom

Este /product-category/ es nuevo, además de que no estaba cubierta en el requisito original. Regla actual es tan genérico brand.php?name=anything será redirigido a new.com/anything. Los casos específicos se puede ajustar cambiando: RewriteCond %{QUERY_STRING} ^name=([^&]+) [NC]
anubhava

Comprobar mi respuesta actualizada ahora a ver específicas y genéricas reglas de redirección
anubhava

Es perfecto, muchas gracias por tu tiempo y tu ayuda.
Malcom

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................