Redirections sur un site web
Ces redirections supposent un serveur Apache et fonctionnent dans un fichier .htaccess. Celui-ci est placé à la racine du site et peut être surchargé dans les sous-répertoires.
Il faut distinguer le principe de la redirection de celui de la réécriture d'URL.
Redirection vs. réécriture d'URL
Ce sont deux techniques proches mais qui ont un effet opposé:
Redirection: l'URL donnée par l'utilisateur est redirigée sur une nouvelle page. L'URL de la nouvelle page est affichée par le navigateur.
On l'utilise pour un changement d'adresse. La nouvelle URL devrait être indexée par les moteurs de recherche et l'ancienne supprimée.
Réécriture: l'URL donnée par l'utilisateur est remplacée par le serveur de façon invisible par un nouveau chemin. Le navigateur affiche cependant l'URL donnée par l'utilisateur.
On l'utilise pour séparer l'URL visible du chemin réel et fournir aux utilisateurs des libellés plus pratiques. Seule l'URL visible doit être indexée par les moteurs de recherche et non pas le chemin sur le serveur.
Apache utilise le même module RewriteEngine dans les deux cas, mais la commande Redirect ou l'option 301 changent l'URL affichée. En fait le serveur renvoi la nouvelle URL au navigateur qui doit effectuer une nouvelle requête.
Les redirections doivent être placées avant les réécritures dans le fichier .htaccess.
Comment ajouter www
Comment rediriger http://scriptol.fr sur http://www.scriptol.fr
RewriteEngine On
RewriteCond %{HTTP_HOST} ^scriptol.fr
RewriteRule (.*) http ://www.scriptol.fr/$1 [R=301,L]
Comment renvoyer les erreurs 404 sur une page
Ce peut être une page d'erreurs, dite page 404 du nom du code renvoyé quand une page n'est pas trouvée, ou la page d'accueil (plus utile).
RewriteEngine on
ErrorDocument 404 /index.php
Noter que la directive RewriteEngine on qui active les redirections se place une seule fois en début du fichier .htaccess.
Rediriger un nom de domaine sur un autre
Pour le changement définitif de nom de domaine, ne nouveau domaine étant par exemple scriptol.fr
Redirect 301 / http://www.scriptol.fr/
Pour un changement temporaire, on utiliserait le code 302.
Rediriger sur une page déplacée
Redirect 301 /répertoire/page.html http://www.scriptol.fr/répertoire/page.html
Ce peut être sur le même site ou un autre, le nom du site étant toujours inclus dans l'URL, cela ne change rien.
Rediriger un répertoire entier vers un seul fichier
Si l'on veut retirer un sous-répertoire du Web, on peut le rediriger en bloc sur la page d'accueil ou une autre page avec une seule directive:
RedirectMatch 301 ^/monsousrep/.*$ http://www.scriptol.fr/compilateur/
RedirectMatch 301 ^/monsousrep/.*$ http://www.scriptol.com/index.php
Le répertoire à supprimer se nomme "monsousrep" à remplacer par le nom de votre répertoire ainsi que le domaine de la cible, et la page.
La destination ne doit pas être contenue dans le répertoire à rediriger car cela ferait entrer dans un boucle infinie.
Sur le plan du référencement, une telle opération entraîne deux réserves:
- Il est préférable de placer une page en "noindex" plutôt que la rediriger sur une autre page dont le contenu est différent.
- Vous devez vous assurer que tous les liens pointant sur une page redirigée sont mis à jour. Un lien vers une redirection sur le même site est pénalisante.
Utilisez Link Checker avec les options -r -s -f pour trouver ces liens.
Plus d'information
|
|
|
