HTTP 301

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

Le code de réponse HTTP 301 Moved Permanently est utilisé pour une Redirection d'URL permanente, c'est-à-dire, les liens actuels ou les enregistrements utilisant l'URL pour lesquels l'URL de réponse doit être modifiée. Le nouvel URL doit être donné dans le champ "Location" inclus dans la réponse. Le code 301 redirect est considéré comme le meilleur moyen de mettre à niveau les utilisateurs de HTTP vers HTTPS[1]. RFC 2616 déclare que:

  • Si un client a la possibilité d'éditer les liens, il doit mettre à jour les références vers l'URL demandée.
  • La réponse peut être mise en cache[2].
  • La réponse doit contenir une petite note hypertexte avec un hyperlien vers le/les nouveaux URL(s), sauf si la méthode de la demande était HEAD.
  • Si le statut 301 est reçu en réponse à une requête autre que GET ou HEAD, le client doit demander à l'utilisateur avant de le rediriger.

Exemple[modifier | modifier le code]

Requête Client:

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

Réponse serveur:

HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/index.asp

Voici un exemple utilisant les fichiers .htaccess pour rediriger un URL non sécurisé vers une adresse sécurisée sans le "www":

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

RewriteCond %{HTTPS} on
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] 

Voici un exemple utilisant une redirection PHP

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://example.com/newpage.html");
exit();
?>

D'une simplicité équivalente pour une configuration nginx:

location /old/url/ {
    return 301 /new/url;
}

Moteurs de recherche[modifier | modifier le code]

Bing et Google recommandent la redirection 301 pour changer l'URL d'une page[3],[4].

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « Secure your site with HTTPS », sur support.google.com, Google (consulté le 6 février 2016)
  2. How long do browsers cache HTTP 301s? - https://stackoverflow.com/questions/9130422/how-long-do-browsers-cache-http-301s
  3. Site Move Tool - Bing Webmaster Help & How-to - https://www.bing.com/webmaster/help/how-to-use-the-site-move-tool-bb8f5112
  4. 301 redirects - Google Webmaster Tools Help - https://support.google.com/webmasters/bin/answer.py?hl=en&answer=93633

Modèle:Web-stub