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 .
- 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.orgRespuesta del servidor:
HTTP / 1.1 301 Movido permanentemente Ubicación : https://www.example.org/index.aspUsando 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 ]