Redirection 301
Une redirection 301, également appelée “301 Moved Permanently”, a pour but de rediriger de façon permanente le trafic vers une nouvelle URL.
En fait, cela donne au visiteur de l’ancienne url le message qu’il doit remplacer son script ou faire un lien vers la nouvelle url. C’est le cas, par exemple, lorsqu’un site Web fonctionnant depuis des années en HTTP (sans SSL) est désormais équipé de HTTPS (avec SSL). La redirection 301 indique au visiteur de l’ancienne URL que le lien doit être modifié de http://www.theory7.net à https://www.theory7.net .
Redirection 301 et SEO
Une redirection 301 est la redirection la plus conviviale que vous puissiez faire en termes de référencement. Il indique au moteur de recherche que l’URL que vous considériez comme l’ancienne est désormais disponible à une nouvelle URL.
S’il existe des backlinks ou d’autres sites de référence liés à l’ancienne URL, le moteur de recherche tel que Google ou Bing transmettra également cette valeur qui arrive à l’ancienne URL à la nouvelle URL.
Par conséquent, il est toujours très important de s’assurer que vous faites une redirection 301 aux pages 404, de sorte que la valeur pour le référencement et les visiteurs montre toujours le bon contenu à la bonne URL ! Ne vous contentez donc jamais de mettre des pages hors ligne, mais mettez-les hors ligne et faites une redirection 301 vers une autre page ou un contenu pertinent.
Méthodes de redirection 301
Une redirection 301 peut être effectuée de plusieurs manières. La méthode la plus simple pour vous varie selon le pack d’hébergement et le serveur. Nous allons aborder les plus courantes ci-dessous :
- Redirection 301 via la règle .htaccess
- Redirection 301 via mod_rewrite dans .htaccess ou Apache Vhost
- Redirection 301 avec un script PHP
- Redirection 301 avec Nginx
Redirection 301 avec une règle .htaccess
Une redirection 301 peut être effectuée dans un fichier .htaccess. Il s’agit d’un fichier qui commence vraiment par un point et qui doit être placé dans le même dossier que les fichiers de votre site Web. Ce dossier est souvent appelé public_html, ou public ou statique. Cela diffère selon le pack d’hébergement/serveur.
Exemple de redirection 301 via .htaccess
Redirection 301 /chemin/vers/ancien/url https://www.theory7.net/pad/naar/nieuwe/url
**Autre exemple:**
Redirection 301 /old-page https://www.theory7.net/nieuwe-pagina
Redirection 301 via mod_rewrite
Cette méthode qui passe par mod_rewrite est une méthode très utilisée et est aussi souvent utilisée dans le .htaccess. Vous reconnaissez et voyez souvent cette méthode de redirection 301 lorsque vous redirigez des visiteurs ou des moteurs de recherche d’un ancien site web (nom de domaine) vers un nouveau site web (nom de domaine).
Il est également souvent utilisé pour forcer tout le monde à passer de http:// à https:// et ainsi s’assurer que tout le monde passe par la connexion sécurisée.
**Qu’est-ce que le mod_rewrite ?
Mod_rewrite est un module qui est chargé dans Apache. Apache est le logiciel qui lit vos scripts et vos fichiers html et les convertit ensuite en une représentation visuelle. En bref, il transforme votre code html écrit en un site web visible.
Le module mod_rewrite est un module optionnel/extra chargé avec lequel vous pouvez indiquer à Apache de rediriger les urls vers de nouvelles urls. Comme il est effectué dans Apache pendant le traitement de votre code html, il est également très rapide !
Exemple de redirection 301 via mod_rewrite ``html RewriteEngine On rewritecond %{http_host} ^theory7.net rewriteRule ^(.*) http://www.theory7.net/$1 [R=301,L]
Dans cet exemple, nous envoyons tous les visiteurs qui se rendent sur notre site web via http://theory7.net, sans www devant, vers la version avec www devant, à savoir http://www.theory7.net.
**Exemple de redirection SSL 301 forcée mod_rewrite**.
``html
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
SetEnvIf X-Forwarded-Proto "https" HTTPS=on
RewriteCond %{HTTPS} Sur
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Dans cet exemple, nous indiquons à mod_rewrite que si l’URL que nous visitons l’est sur http:// (c’est-à-dire sans SSL), nous souhaitons la rediriger vers https:// (c’est-à-dire avec SSL) et nous voulons le faire via une redirection 301.
Dès que vous utilisez cette redirection 301, chaque visiteur sera contraint de se rendre sur un lien SSL https:// et, à partir de ce moment, un cadenas sera toujours visible dans votre barre d’adresse.
Redirection 301 via PHP (fonction header)
Il est également possible d’effectuer une redirection 301 en PHP. C’est la variante que je recommande le moins, car Apache et PHP doivent d’abord lire et exécuter le script que vous avez écrit et seulement ensuite vous rediriger via une redirection 301. Cette opération est donc considérablement plus lente que si elle était effectuée via .htaccess ou mod_rewrite !
Exemple de redirection 301 via la fonction d’en-tête de PHP. ``html
En utilisant le code ci-dessus, vous pouvez simplement rediriger quelqu'un vers une nouvelle URL via PHP. Vous pouvez, bien entendu, le personnaliser à votre guise.
Les lignes // sont seulement pour l'explication, PHP ne fait rien avec elles donc vous pouvez les enlever si vous voulez quand vous utilisez le code !
## Redirection 301 via NGINX
Il est possible que votre hébergeur utilise NGINX au lieu d'Apache. Il s'agit d'un autre type de logiciel qui fonctionne légèrement différemment d'Apache et qui est souvent plus axé sur des performances plus élevées et nécessite moins de puissance de traitement.
Malheureusement, NGINX ne dispose pas de .htaccess ou de mod_rewrite, vous ne pouvez donc pas utiliser ces méthodes pour effectuer une redirection 301 avec NGINX. Cela peut se faire via PHP, mais il existe une autre possibilité via la configuration de NGINX.
Via la configuration du serveur virtuel NGINX, vous pouvez effectuer des redirections 301 à des fins diverses. Je vais vous donner quelques exemples qui pourraient vous être utiles :
**301 redirection vers un nouveau domaine via NGINX**.
``html
serveur {
nom_serveur anciennomdedomaine.net ;
réécrire ^/(.*)$ http://nieuwedomeinnaam.net/$1 permanent ;
}
Dans cet exemple, vous créez un objet serveur dans la configuration de NGINX. Dans cet objet, vous spécifiez l’ancien nom de domaine à server_name. Cela signifie que l’objet sera activé dans la configuration de nginx dès que vous surferez sur l’ancien nom de domaine.net.
Dans ce cas, il y a une ligne de réécriture ci-dessous. Ici, nous faisons en sorte que lorsque vous surfez sur l’ancien nom de domaine.net, vous soyez redirigé vers le nouveau nom de domaine.net. Cela se fait via une redirection 301 !
301 rediriger l’ancienne page vers la nouvelle page dans NGINX. ``html serveur {
nom_serveur theory7.net www.theory7.net ;
réécrire ^/ancienne-page$ /nouvelle-page.html de façon permanente ;
}
Pour rediriger l'url d'une ancienne page vers une nouvelle, il faut encore un autre code. Ci-dessus, nous créons un autre objet serveur dans la configuration de NGINX.
Au niveau du nom du serveur, nous avons défini le nom de domaine theory7.net et www.theory7.net. Cela signifie que l'objet sera activé lorsque nous visiterons l'un de ces noms de domaine dans la barre d'adresse.
Ensuite, vous verrez une ligne de redirection avec laquelle nous disons que /old-page ( et tout ce qui suit) doit être redirigé vers /new-page.html. De cette façon, nous pouvons facilement rediriger une page spécifique via une redirection 301 dans NGINX !