Code d'état HTTP 301
La ressource demandée a été définitivement déplacée vers un nouvel emplacement, et toute référence future à cette ressource doit utiliser l'un des nombreux URI renvoyés avec cette réponse. Si possible, les clients dotés de capacités d'édition de liens doivent automatiquement modifier l'adresse demandée par l'adresse renvoyée par le serveur. Sauf indication contraire, cette réponse peut également être mise en cache.
Le nouvel URI permanent doit être renvoyé dans le champ Localisation de la réponse. Sauf s'il s'agit d'une requête HEAD, l'entité de réponse doit contenir un lien hypertexte vers le nouvel URI et une brève description.
S'il ne s'agit pas d'une requête GET ou HEAD, le navigateur interdit la redirection automatique sauf confirmation de l'utilisateur, car les conditions de la requête peuvent changer en conséquence.
Remarque : Pour certains navigateurs utilisant le protocole HTTP/1.0, lorsque la requête POST qu'ils envoient obtient une réponse 301, la requête de redirection suivante deviendra une méthode GET.
Utilisez php pour implémenter 301 :
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.xxx.com");
Quelle est la différence entre 302 et 301[Lecture recommandée : Code d'état HTTP 302]
301 et 302 n'ont aucune différence pour les utilisateurs, ils voient que l'effet est juste un saut Tour, l'ancienne URL dans le navigateur devient la nouvelle URL. La page saute là où pointe cette nouvelle URL. Pour les moteurs et les webmasters, les redirections 302 peuvent rencontrer des problèmes de normalisation d'URL et de détournement d'URL. Elle peut être jugée comme une redirection suspecte par les moteurs de recherche, voire considérée comme de la triche.