AccueilđŸ‡«đŸ‡·Chercher

HTTP 301

HTTP 301 Moved Permanently (ou 301 redirect) est un code de rĂ©ponse HTTP qui est utilisĂ© pour une redirection d'URL permanente, c'est-Ă -dire, pour indiquer que les liens actuels ou les enregistrements qui utilisent l'URL pour lesquels il a Ă©tĂ© recu doivent ĂȘtre modifiĂ©s. 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].

La RFC 2616[2] définit 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[3].
  • 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

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();
?>

Voici une exemple d'une simplicité équivalente pour une configuration nginx:

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

Moteurs de recherche

Les moteurs de recherche Bing et Google recommandent la redirection 301 pour changer l'URL d'une page[4] - [1].

Voir aussi

Notes et références

  1. (en) « Secure your site with HTTPS », sur support.google.com, Google (consulté le ).
  2. (en) Request for comments no 2616.
  3. (en) « How long do browsers cache HTTP 301s? », sur Stack Overflow (consulté le ).
  4. (en) « Site Move Tool - Bing Webmaster Help How-to » (consulté le ).
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.