Vous êtes ici La finalisation de la réécriture d'url en 301

Explications
Lien utile

Finalisation de la réécriture d'URL

Ce qu'il faut savoir

ressources


La finalisation 301 sert à empêcher les urls d'origines (urls physiques) d'êtres délivrées par le serveur, en cas de réécriture. La méthode consiste à rediriger les urls d'origines vers les nouvelles à l'aide d'entêtes php.

Ce chapitre n'est pas indispensable mais essentiel. Il devient indispensable pour les sites qui utilisent beaucoup de mailing car souvent les serveurs en l'absence de proxy redirige directement les requêtes sur le moteur php sans passer par le moteur de réécriture. Vous n'aimeriez pas que votre client cliquant sur un lien de votre mail aboutisse sur l'url non réécrite au lieu de celle réécrite. Obliger vous ici à mettre des redirections pour éviter ce problème!

Ce chapitre est également indispensable pour les sites qui ont des urls déjà indexées dans les moteurs de recherche et veulent les désindexer rapidement pour indexer les nouvelles urls réécrite à leur place.

Dans un cas général, nous conseillons à tous développeurs de bloquer l'accès aux anciennes urls en appliquant des redirections 301 afin d'éviter bien des surprises !!

Comment procéder ?

Procédure de redirection:
- récupérer l'uri
- tester si la chaine correspond au motif
- si oui :
  a) envoyer une entête 301 pour une redirection définitive
  b) faire la redirection sur l'url réécrite
PHP va nous aider à faire ces redirections ;)
Redirection simple:
L'exemple ci dessous va rediriger
index.php?id=15
vers
index-15.html

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
  <?php

      $URi 
$_SERVER["REQUEST_URI"];

          
$motif "'/index\.php\?id=15'i";
          if (
preg_match($motif,$URi))
          {
          
header("Status: 301 Moved Permanently");
          
header("Location: http://www.site.com/index-15.html");
          exit;
          }

?>


Redirection massive
L'exemple ci dessous va rediriger
avec n pour n'importe quel entier compris entre 0 et l'infini
index.php?id=(n)
vers
index-(n).html

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
  <?php

      $URi 
$_SERVER["REQUEST_URI"];

          
$motif "'(/index\.php\?id=)+([0-9]+)'";
          if (
preg_match($motif,$URi,$capture))
          {
          
header("Status: 301 Moved Permanently");
          
header("Location: http://www.site.com/index-$capture[2].html");
          exit;
          }

?>
Si vous n'êtes pas convaincu d'avoir à faire ces redirections, ne les faites pas !! Mais vous pourriez vous faire désindexer par Google et Yahoo à cause du duplicate content et il arrive aussi que les serveurs aient du mal à renvoyer le PROXY et finalement ne renvoi que l'url physique (l'url non réécrite). C'est particulièrement le cas lorsque la requête vient d'une messagerie ou d'une boite de tchat.

Librairie

Langages de programmation

La librairie est ouverte à tous et elle est accès principalement sur les langages Snippets. Vous trouverez aussi d'autres langages de programmation tel que le CSS, HTML, AJAX, ASP.. Plus de 300 références facilement accessibles. Visiter

  • PHP 5.2 et APACHE 2 - Maîtrisez le développement et le déploiement de votre site web interactif [Nouvelle version]
  • Apache en action
  • Apache 2.0 : Guide de l'administrateur Linux
  • Montez votre serveur de A à Z
  • Apache
  • Apache Tomcat 6 - Guide d administration du serveur Java EE sous Windows et Linux
  • Précis & Concis : Apache
  • Debian GNU/Linux - Services réseaux (Bind DNS, Apache, NFS, Samba, Messagerie...)
  • Guide de référence : Apache 2 : Installation, configuration et administration sous Windows et Linux
  • LAMP (Linux, Apache, MySQL, PHP) Pack 4 volumes : Maîtrisez vos applications Web en Open Source