¿Cómo puedo crear una redirección 301?

Una redirección 301 transfiere el código de estado HTTP 301 de un servidor web al cliente solicitante, como Google Bot o un usuario, y por lo tanto indica que el recurso solicitado (por ejemplo, una URL) se ha movido permanentemente y ahora se puede encontrar bajo una nueva URL.

Una redirección 301 puede ser creada fácilmente mediante PHP o el archivo .htaccess y el módulo mod_rewrite necesario del servidor web Apache – esto también se aplica a Nginx.

Crear una redirección 301 en PHP

Si se desea establecer una redirección 301 mediante PHP, el documento fuente debe ser un archivo PHP. Si se cumple este requisito, el código PHP para la redirección 301 se escribe directamente en el documento al que se redirige.

Agregue el siguiente código fuente en la primera línea del documento al que se redirige:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.domain.com/nuevo-nombre.php");
header("Connection: close");
?>

Función: Al pegar el código anterior dentro del archivo “nombre-viejo.php”, el cual puede ser localizado en “domain.com/nombre-viejo.php”, todos los visitantes serán redirigidos a la nueva dirección “domain.com/nombre-nuevo.php“ (línea 3) y el Código de Estatus HTTP 301 que fue movido permanente será devuelto.

Crear una redirección 301 a través del .htaccess

Si deseas crear una redirección 301 a través del archivo .htaccess, necesitarás un servidor web Apache y activar el módulo mod_rewrite. Ten en cuenta que Apache es uno de los servidores web más populares y casi todos los grandes proveedores de alojamiento web lo utilizarán. Además, en muchos casos el módulo mod_rewrite ya estará activado. El archivo .htaccess viene incluido por defecto en la mayoría de los paquetes de alojamiento web.

Pega el siguiente código fuente en el archivo .htaccess:

RewriteEngine On
RewriteRule  ^vz/dokumento.html  https://www.dominio.es/dokumento.html  [R=301]

Función: Al utilizar el comando «RewriteEnginge On», se activa el módulo mod_rewrite del servidor web Apache. La segunda línea de código comienza con la instrucción «RewriteRule» y establece la ruta en la que se debe realizar la redirección para el documento o documentos siguientes.

Separado por un espacio en blanco, se escribe la URL de destino en la misma línea, a la cual se desea redirigir tanto al bot de Google como al usuario.

En nuestro ejemplo, el archivo «documento.html» ya no se encuentra en la carpeta «/vz/», sino un nivel más arriba bajo el nombre de dominio.

Por último, se establece entre corchetes el código de estado HTTP que el servidor debe utilizar para esta redirección. Es importante definir el código de estado como 301, ya que Apache utiliza de forma predeterminada el código de estado 302 sin esta instrucción explícita.

Crear un redirección 301 con NGINX

Junto con Apache, Nginx es el segundo servidor web más utilizado. Aquí, las instrucciones no se enumeran en un archivo separado, sino que se colocan directamente en nginx.conf.

Agregue el siguiente código fuente a su archivo nginx.conf, ya sea en el bloque de servidor existente o en uno nuevo:

rewrite ^/vz/dokument.html $scheme://$host/dokument.html permanent;

Función: La primera línea de código comienza con la instrucción «rewrite» y establece la ruta en la que se realizará la redirección para el documento siguiente.

Aquí también, después de un espacio en blanco, se enumera la URL de destino. Nginx se encarga automáticamente de determinar si se trata de http o https gracias a la variable $scheme y se ingresa el host correspondiente con $host.

La instrucción «permanent» asegura que la redirección utilice el código de estado 301.

Envío a gran escala con expresiones regulares

Si deseas redirigir todos los documentos y subdirectorios, también puedes trabajar con expresiones regulares.

rewrite ^/vz/(.*)$ $scheme://$host/$1 permanent;

Con esta declaración todos los documentos en el directorio /vz/ serían redirigidos al directorio raíz. dominio.es/vz/documento2.html sería redirigido a dominio.es/documento2.html y dominio.es/vz/directorio2/documento3.html terminaría en dominio.es/ directorio2/documento3.html .

Crear un redirección 301 con NGINX, Lighttpd o Microsoft Internet Information Services (IIS)

Crear una redirección 301 en otros servidores Web, como NGINX, Lighttpd o el IIS, no es algo muy difícil para usuarios sin experiencia.

Explicación en video por Matt Cutts / Google respecto a este tema

¿Existe un límite sobre cuántas redirecciones 301 (permanentes) puedo realizar en un sitio?

¿Existe un límite sobre cuántas redirecciones 301 permanentes) puedo realizar en un sitio? ¿Qué hay acerca de cuántos redirecciones puedo hacer en secuencias?

Información Adicional sobre este tema:

17.04.2023