====== Rewrite URL en PHP chee Free.fr ====== Le module [[http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html|mod_rewrite]] d'[[http://httpd.apache.org/|Apache]] n'étant pas disponible chez [[http://www.free.fr|Free.fr]] voici comment faire en PHP. ===== htaccess ===== La première modification porte sur le fichier **.htaccess**. Elle consiste à rediriger toutes les erreurs de type 404 vers un script PHP chargé de réécrire l'URL si elle est connue ou bien d'afficher une vraie [[http://fr.wikipedia.org/wiki/Erreur_404|erreur 404]] ErrorDocument 404 /rewriteurl.php Baniere ZLIO ===== rewriteurl.php ===== Le code PHP récupére l'url demandée, la compare avec ''preg_match'' à des URL connues. Si l'expression régulière concorde un header avec un code 200 est envoyé. Si necessaire les paramètres sont récupérés et passés au vrai script PHP par l'intermédiaire du tableau ''GET''. Ensuite le vrai script est inclu avant de terminer le script rewriteurl.php avec la commande ''exit()''. Si l'URL passée ne correspond à aucunes des expressions régulières alors une page de 404 est affichée. \n"; print "\n"; print "\n"; print "Error 404 - Not found\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

Error 404 - Not found

\n"; print "

Le fichier requis n'a pas été trouvé. Il peut s'agir d'une erreur technique. Veuillez réessayer ultérieurement. Si vous ne pouvez pas accéder au fichier après plusieurs tentatives, cela signifie qu'il a été supprimé\n"; print "

\n"; print "\n"; print "\n"; } ?>
===== Indexation ===== Le probléme avec cette méthode c'est l'indexation. En effet le client reçoit un code 404 et ensuite un code 200 (il est facile de le vérifier avec [[http://www.mozilla-europe.org/fr/products/firefox/|FireFox]] et l'extension [[http://livehttpheaders.mozdev.org/|Live HTTP Headers]] ). Il y a fort à parier que les robots de crawl des moteurs de recherche s'arrête au 404.