Les redirections

La redirection permet de rediriger de force l'utilisateur de votre site vers une page donnée sans qu'une action de l'utilisateur ne soit nécessaire.

Cela est utile dans plusieurs cas :

  • afficher une page de confirmation pendant quelques secondes.
  • afficher une page d'erreur pendant quelques secondes.
  • rediriger l'utilisateur si celui-ci tente d'accéder à une page qui n'existe pas ou à une zone restreinte du site.

Différentes techniques de redirection

En HTML et XHTML

Ce code doit être mis entre les balises <HEAD></HEAD>

<!-- Pour html -->
<meta http-equiv="refresh" content="seconde; URL=cible">
 
<!-- Pour xhtml -->
<meta http-equiv="refresh" content="seconde; URL=cible" />
  • seconde : temps (en secondes) qui s'écoulera avant que la redirection ne s'effectue.
  • cible : URL de la page vers laquelle l'utilisateur sera redirigé.


Exemple
On souhaite rediriger l'utilisateur vers le site Franceserv.fr, 5 secondes après le chargement de la page. Le code sera celui ci :

<meta http-equiv="refresh" content="5; URL=http://www.franceserv.fr">

En JavaScript

Ce code doit être mis soit dans la balise <HEAD>, soit dans un fichier Javascript (.js).

<script type="text/javascript">
window.location = 'cible'
</script>
  • cible : url de la page vers laquelle l'utilisateur sera redirigé.

En PHP

La fonction header() doit impérativement être utilisée avant tout affichage et toute balise HTML. Le code ci-dessous doit donc être mis avant la balise <HTML>.

<?php header('Location: cible'); ?>
  • cible : url vers laquelle l'utilisateur sera redirigé.

Avec le fichier htaccess

# Rediriger index.html vers une autre page
Redirect /index.html http://mondomaine.com/monrepertoire/mapage.html

# Rediriger index.html vers un dossier
Redirect /index.html http://mondomaine.com/monrepertoire

# Redirection permanente de votre domaine vers nouveau-domaine.com
Redirect 301 / http://nouveau-domaine.com/


# Si vous avez changé les pages .html en .php
RedirectMatch 301 (.*)\.html$ http://www.mondomaine.com$1.php


# Réécrire http://mondomaine.com en http://www.mondomaine.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.mondomaine\.com$ [NC]
RewriteRule ^(.*)$ http://www.mondomaine.com/$1 [L,R=301]

# Réécrire http://www.mondomaine.com en http://mondomaine.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.mondomaine\.com$ [NC]
RewriteRule ^(.*)$ http://mondomaine.com/$1 [L,R=301]

# Rediriger n'importe quel mondomaine.tld vers mondomaine.fr
RewriteEngine on
RewriteCond %{HTTP_HOST} !^mondomaine.fr$
RewriteRule ^(.*) http://mondomaine.fr/$1 [QSA,L,R=301]