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

Con una redirección 301, el servidor Web devuelve un Código de Estado HTTP 301 al cliente solicitante, el cual puede ser, por ejemplo, Google-Bot o un usuario. Este código de estado le dice al cliente que el recurso solicitado (una URL por ejemplo) ha sido movido permanentemente y ahora está disponible en una nueva URL.

Puedes configurar fácilmente una redirección 301 en PHP o a través del archivo .htaccess y el módulo mod_rewrite, si utilizas un servidor Web Apache.

Crear una redirección 301 en PHP

Si quieres crear una redirección 301 en PHP el documento de origen tiene que ser un archivo PHP. Si se cumple esta condición, el código PHP para la redirección 301 será agregado directamente al documento que se supone que será redirigido.

Pega el siguiente código fuente en la primera línea del documento que quieres redirigir:

<?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 quieres crear una redirección 301 a través del archivo .htaccess necesitarás un servidor Web Apache y activar el módulo mod_rewrite. Tomando en cuenta que Apache es uno de los servidores Web más populares y casi todos los grandes host Web lo utilizarán. Adicional a esto, el módulo mod_rewrite ya estará activado en muchos casos. El archivo .htaccess está incluido por defecto en la mayoría de los paquetes de los host 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: El comando «RewriteEnginge On» se dirige al módulo mod_rewrite del servidor web Apache. La segunda línea de código comienza con la sentencia «RewriteRule» y define la ruta para qué documento(s) se debe ejecutar la siguiente redirección.

Separado por un espacio, la URL de destino a la que se redirige el bot de Google y el usuario se escribe en la misma línea.

En nuestro ejemplo, el archivo «dokumento.html» ya no se encuentra en la carpeta «/vz/», sino en un nivel superior bajo el nombre de dominio.

Finalmente, el código de estado HTTP del servidor para este reenvío se especifica entre corchetes. Aquí es importante definir el código de estado como 301, porque Apache usa el código de estado 302 por defecto2 sin este anuncio explícito.

Crear un redirección 301 con NGINX

Además de Apache, Nginx es el segundo servidor web más utilizado. Aquí las instrucciones no están listadas en un archivo separado, sino directamente en nginx.conf.

Añade 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 frase «reescribir» y determina la ruta para la que se debe realizar el reenvío posterior.

La URL de destino también se muestra aquí, separada por un espacio. Gracias a $scheme, Nginx se hace cargo independientemente de si se trata de http o https y con $host se introduce el host correspondiente.

La expresión «permanente» garantiza que el reenvío 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:

29.01.2021