Comment faire pour rediriger automatiquement une page ou un site vers ailleurs ? |
Il y a plusieurs méthodes selon ce que vous voulez rediriger, que vous vous préoccupiez du référencement et que nous n’ayons pas à intervenir. En voici trois.
À l’aide d’une page web
Ces deux méthodes ont l’inconvénient de rendre le référencement difficile voire impossible. Les moteurs n’acceptent plus la première suite à des abus, alors que la seconde masque complètement la redirection. |
Par remplacement de l’adresse
Cette méthode remplacera l’adresse affichée dans la barre d’adresse du navigateur par la nouvelle adresse. Si vous souhaitez éviter cela, il faut utiliser la méthode suivante par cadre.
Dans votre fichier html à rediriger, ajoutez dans l’entête la balise meta suivante :
<meta http-equiv= »refresh » content= »S; url=http://ma_nouvelle_adresse »> |
où S doit être remplacée par une valeur entière correspondant au delai en secondes avant d’être redirigé, et ma_nouvelle_adresse est l’adresse de la nouvelle page. Elle peut être située sur le même domaine ou ailleurs.
Pour le faire, vous pouvez ouvrir votre fichier dans un éditeur de texte tel que le bloc-note pour éditer le code source. Certains éditeurs de page html autorisent l’ajout de balises metas supplémentaires. Cela se trouve habituellement dans le menu « propriétés de la page« .
Si vous mettez un long delai, vous devriez ajouter dans le corps de la page un commentaire signalant la redirection de la page. Ceci est recommandé quoiqu’il arrive car la connexion à la page redirigée peux prendre un moment durant lequel le visiteur vera la page de redirection.
Si vous avez l’intention de rediriger un site entier, vous devriez ajouter cette balise dans le fichier index.html à la racine du site.
Par cadre
Cette méthode laisse l’adresse de la page de redirection constamment affichée dans la barre d’adresse du navigateur quelle que soit la page appelée, même en suivant un lien (jusqu’à ce que le lien force l’affichage hors du cadre). Mettez à la place du code entier du fichier html à rediriger :
<html> <head><title>redirection</title></head> <frameset rows= »* » cols= »* » frameborder= »NO » border= »0″ framespacing= »0″> <frame src= »ma_nouvelle_adresse » name= »redirect »> </frameset> </html> |
Il faut remplacer ma_nouvelle_adresse par l’adresse de la page redirigée. Cette adresse peut être locale ou distante. La page redirigée est affichée sans délai.
Vous pouvez aussi rediriger la page vers une page contenant la balise meta ci-dessus si vous voulez un délai avant la redirection.
Par PHP
Les méthodes de remplacement de l’adresse ou de cadre peuvent aussi être mises en œuvre par php. Les première se font grâce à la fonction header();.
<?php header(‘Location: http://ma_nouvelle_adresse’); ?> |
permet une redirection temporaire (code 302 ou 307) où ma_nouvelle_adresse est l’adresse de la nouvelle page.
<?php header(‘Location: http://ma_nouvelle_adresse’,true,301); ?> |
permet une redirection permanente (code 301).
D’autres méthodes sont possible en créant le code html par php, ou en utilisant les fonctions php pour récupérer le site distant et l’afficher sur son site sans donc changer l’adresse.
L’avantage du php est de pouvoir effectuer d’autres traitements que les autres méthodes présentées ici ne permettent pas.
À l’aide de règles de réécriture
Le serveur web procéde toujours à une traduction des adresses avant d’envoyer la page au navigateur. Cela permet de manipuler l’adresse de façon à envoyer la page adéquate. Les régles de réécriture sont un sujet vaste et complexe. Ici, nous nous contenterons de quelques cas particuliers mais très utiles.
Les termes entre < et > sont à remplacer par le nom ou chemin correspondant dans les lignes de code suivantes. Le code doit être placé dans un fichier texte, créé à l’aide du bloc-note, dont le nom est .htaccess tel quel. Ce fichier doit être placé dans le dossier où se trouve les fichiers à rediriger.
Le code 301 qui apparaît dans les lignes suivantes indique que la redirection est permanente. Ceci est utile pour les moteurs de recherche qui ainsi changeront le référencement de ces pages. D’autres codes existent. |
Dans un fichier .htaccess, le code
RewriteEngine On RewriteRule ^(.*)$ http://<nouveau_domaine>$1 [R=301,L]
permet de rediriger un site entier vers un autre domaine qui a la même structure.
Pour rediriger une page, le code à mettre dans le .htaccess est
redirect 301 /<chemin>/<page-a-changer> http://<nouvelle_adresse>
Pour rediriger plusieurs pages de nom identique ou un dossier, c’est,
redirectmatch 301 /<chemin>/(<motif-de-selection>) http://<nouvelle/adresse/et/chemin>/$1
Le $1 et les parenthèses sont importantes : c’est ce qui permet de sélectionner le nom du fichier appelé et de le remplacer dans la nouvelle adresse. Cette ligne peut aussi servir à rediriger un site entier au lieu du premier code en haut du paragraphe.
Exemples :
redirectmatch 301 /dossier/(*.html) /html/$1
redirige toutes les url accédant à un fichier .html de dossier/ vers le même fichier dans html/ sur le même site.
RedirectPermanent ^/$ http://<domaine>/v1/accueil.html
redirige le nom de domaine seul vers une page d’accueil d’un sous-dossier, tout en laissant l’accès sans redirection aux autres pages du site => utile lorsqu’on met en place une nouvelle version à la racine du site tout en laissant l’accès à l’ancienne version.
RedirectPermanent ^/accueil.html$ http://<domaine>/v2/
redirige une page d’accueil vers un sous-dossier, tout en laissant l’accès normal au site par les autres pages => c’est l’inverse de l’exemple précédent : laisser intouché l’ancien site pendant le développement du nouveau. Ou peut-être utile pour rediriger par mot-clé vers la section correspondante du site.
À l’aide de DNS
Dans le cas d’une redirection globale d’un domaine ou d’un sous-domaine, une solution simple est de modifier les dns depuis Plesk. Choisissez l’une de ces méthodes :
– en remplaçant l’ip de l’entrée dns par l’ip du serveur vers lequel pointer (entrée de type A). Exemple, domaine.info doit pointer vers l’ip 123.456.78.9 :
domaine.info A 123.456.78.9
Pour ce faire, dans Plesk, dans l’outil DNS du domaine, cliquez sur l’hôte de type A ne portant que le nom du domaine (dans l’exemple domaine.info). Vous pourrez ensuite changer l’ip.
Il faut un hébergement du même nom sur le serveur distant. |
– en remplaçant l’entrée par une entrée de même nom mais de type CNAME avec comme valeur l’hôte distant, c’est-à-dire le domaine ou sous-domaine distant. Il ne faut pas indiquer d’url ou de fichier. Exemple, domaine.info doit pointer vers le site domaine.com :
domaine.info CNAME domaine.com
Pour ce faire, dans Plesk, clochez la case sur la ligne de l’hôte de type A ne portant que le nom du domaine puis sur le lien Supprimer. Ajoutez ensuite un nouvel enregistrement de type CNAME comme dans l’exemple précédent avec votre noms de domaine.
Veillez à ce qu’il y ait qu’un enregistrement A ou CNAME, mais qu’il y en ait un, sinon votre site ne fonctionnera plus. |
Il n’est pas possible depuis notre serveur de rediriger ailleurs qu’à la racine du site distant. |