Redirection Web
La redirection par HTML, est très lente, mais très facile à intégrer dans n'importe quelle page HTML. Il suffit de l'inclure dans l'entête de la page HTML et d'inclure la balise META appropriée. Il existe dans la plupart des langages de programmation serveur la possibilité de faire la même chose.
L'exemple suivant redirige la page HTML courante vers la page «http://www.gladir.com/» :
Redirection avec le langage de programmation «JavaScript» :
- <script type="text/javascript">
- window.location = "http://www.gladir.com/"
- </script>
Redirection avec le langage de programmation «JavaScript» avec un longue délai de 3 secondes :
Redirection avec le langage de programmation «ColdFusion» :
- <cfheader statuscode="301" statustext="Moved permanently">
- <cfheader name="Location" value="http://www.gladir.com">
Redirection avec le langage de programmation PHP :
Redirection avec les langages de programmation «ASP 1.0», «ASP 2.0» ou «ASP 3.0» :
- <%@ Language=VBScript %>
- <%
- Response.Status="301 Moved Permanently"
- Response.AddHeader "Location","http://www.gladir.com/"
- %>
Redirection avec le langage de programmation «ASP.NET» :
- <script runat="server">
- private void Page_Load(object sender, System.EventArgs e) {
- Response.Status = "301 Moved Permanently";
- Response.AddHeader("Location","http://www.gladir.com");
- }
- </script>
Redirection avec le langage de programmation JSP (Java) :
- <%
- response.setStatus(301);
- response.setHeader( "Location", "http://www.gladir.com/" );
- response.setHeader( "Connection", "close" );
- %>
Redirection CGI de Perl :
- $q = new CGI;
- print $q->redirect("http://www.gladir.com/");
Redirection en Ruby on Rails :
- def old_action
- headers["Status"] = "301 Moved Permanently"
- redirect_to "http://www.gladir.com/"
- end
Remarques
- 301 : Une redirection permanente ne contient pas de date d'expiration et si vous effectuez une redirection avec cette valeur, elle peut être conservée indéfiniment dans le navigateur et non pas 30 jours comme la rumeur le prétend. Cependant, la durée de vie avant que le navigateur revérifie peut varier d'un navigateur à l'autre, et cela ne correspond pas à une règle officielle. Ainsi, la norme «RFC 4437» propose une balise «<!ELEMENT redirect-lifetime (permanent | temporary)>» mais il ne semble pas appliqué par la plupart des navigateurs.
- La bonne pratique recommande de mettre votre redirection au début de vos pages. Ainsi, si vous mettez une redirection dans le milieu ou à la fin d'une page, cela révèle souvent une mauvaise construction d'un programme ou une architecture douteuse. De plus, vous envoyez inutilement des données au navigateur Web allant nécessairement prendre plus de temps pour traiter votre demande.
- IIS vs Apache : IIS permet d'envoyer du HTML avec votre redirection tandis qu'Apache ne l'autorise pas, ainsi afin d'être compatible avec n'importe quel serveur Web, vous devriez éviter d'envoyer d'autres choses que votre redirection dans vos pages à envoyer au navigateur Web.
- SEO : Si votre site Web contient de très nombreuses pages, assurez-vous que vous effectuez des redirections directes dans une point vers un autre, et non pas plusieurs étapes de redirections (exemple : une redirection HTTP vers HTTPS, ensuite une redirection du dossier "dossiera" vers "dossier-a", puis vers le dossier "dossier-a" vers le dossier "dossier-a/", donc, trois étapes ayant pu être combiné en une seule étape), car le moteur de recherche Google se laisse un certains temps fixe pour analyser tous les pages d'un site Web et s'il perd trop de temps dans les redirections, il risque d'indexer moins de pages.
Voir également
Langage de programmation - FBML - Référence des balises - fb:redirect
Articles - URL (Uniform Resource Locator)