es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Redirección 301 a un nuevo dominio con algunas URL específicas.

Vi temas similares pero no encontré una respuesta práctica a mi problema.

Estoy moviendo mi antiguo sitio web a uno nuevo, y algunas URLs están cambiando.

Me gustaría hacer una redirección genérica 301 al nuevo dominio (porque la mayoría de rutas son las mismas), mientras redirijo individualmente algunas URLs.

Esto es lo que tengo en el archivo .htaccess de mi antiguo sitio web:

<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 la redirección 301 va a: https://new.com/custom/url en lugar de https://new.com/my-custom-url

Algunas de mis URLs también tienen parámetros de URL que me gustaría redirigir, como:

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

que tampoco parecen funcionar.

Muchas gracias por su ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución

    Para hacer una redirección 301 genérica al nuevo dominio y redirigir individualmente algunas URLs manteniendo sus respectivos parámetros, puede modificar su código .htaccess de la siguiente manera:

    <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
    
      RewriteCond %{QUERY_STRING} name=Example
      RewriteRule ^brand\.php$ https://new.com/Example? [R=301,L]
    
      RewriteCond %{QUERY_STRING} name=Example2
      RewriteRule ^brand\.php$ https://new.com/another/url? [R=301,L]
    </ifmodule>
    

    En el código anterior, utilizamos la directiva RewriteRule para hacer una redirección 301 genérica al nuevo dominio para todas las URLs, incluso aquellas con parámetros. También utilizamos la directiva Redirect para redirigir URLs específicas a sus nuevas ubicaciones.

    Además, utilizamos la directiva RewriteCond junto con la variable %{QUERY_STRING} para hacer coincidir los parámetros en las antiguas URLs y la directiva RewriteRule para redirigirlas a sus nuevas ubicaciones manteniendo sus respectivos parámetros.

    Al modificar su código .htaccess como se muestra arriba, debería poder lograr el resultado deseado.

Comments are closed.