Articulo de referencia

HTTP 301

En la World Wide Web , el código de estado HTTP 301 , o 301 Moved Permanently , se utiliza para las redirecciones permanentes. Significa que los enlaces o registros que apuntan ...

En la World Wide Web , el código de estado HTTP 301 , o 301 Moved Permanently , se utiliza para las redirecciones permanentes. Significa que los enlaces o registros que apuntan a esta URL deben actualizarse al destino especificado en el campo Location de la respuesta del servidor. La redirección 301 se considera una buena práctica para migrar usuarios de HTTP a HTTPS .

RFC 2616 [ 1 ] establece que:

  • Si un cliente tiene capacidad para editar enlaces, debe actualizar todas las referencias a la URL de la solicitud.
  • La respuesta se puede almacenar en caché a menos que se indique lo contrario.
  • A menos que el método de solicitud sea HEAD, la entidad debe contener una pequeña nota de hipertexto con un hipervínculo a la(s) nueva(s) URL.
  • Si se recibe el código de estado 301 en respuesta a una solicitud de cualquier tipo que no sea GET o HEAD, el cliente debe solicitar permiso al usuario antes de redirigir.

Ejemplos

Solicitud del cliente:

GET /index.php HTTP / 1.1 Host : www.example.org

Respuesta del servidor:

HTTP / 1.1 301 Movido permanentemente Ubicación : https://www.example.org/index.asp

Usando un archivo .htaccess

Para solucionar problemas con archivos o directorios inexistentes mediante un archivo .htaccess distribuido:

Redirección 301 /calendar.html /calendar/ Redirección 301 /not_found.html / 

Aquí hay un ejemplo que utiliza un archivo .htaccess para redirigir una URL no segura a una dirección segura sin el prefijo "www":

RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]RewriteCond %{HTTPS} en RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://example.com/$1 [R,L] 

HTML estático

Una redirección de directorio personalizada, utilizando un archivo index.html:

< meta http -equiv = " refresh " content = " 0; url = / " / > <p> <a href="/"> Inicio </a> </p>

Utilizando lenguajes de programación

Aquí hay un ejemplo usando Perl CGI.pm :

imprimir redirección ( "https://example.com/newpage.html" );

Aquí tienes un ejemplo usando una redirección PHP :

<?php header ( "Location: https://example.com/newpage.html" , true , 301 ); exit ;

Aquí tienes una forma de redirigir usando Express.js :

app.all ( " / old/url" , ( req , res ) => { res.redirect ( 301 , " / new /url" ); });

Servidor de caché

Igualmente sencillo para una configuración de nginx :

ubicación /url/antigua/ { devolver 301 /url/nueva/ ; }

motores de búsqueda

Tanto Bing como Google recomiendan usar una redirección 301 para cambiar la URL de una página tal como se muestra en los resultados del motor de búsqueda, siempre que esa URL vaya a cambiar permanentemente y no se prevea que vuelva a cambiar pronto. [ 2 ] [ 3 ]

Véase también

Referencias

  1. Fielding; et  al. (junio de 1999). 10.3.2 301 Moved Permanently . IETF. p.  61.  sec.  10.3.2. doi : 10.17487/RFC2616 . RFC 2616 .
  2. "Herramienta para mover sitios" . Ayuda y tutoriales de Bing para webmasters .
  3. "Redirecciones 301" . Ayuda de Google Webmaster Tools .