[ 140383 ]
[ 38.103.63.16 ]
L'URL Rewriting avec PHPCette technique avec comme recours le langage PHP, est très utile pour ceux qui veulent faire de la réécriture d'URL, chez un hébergeur comme free.fr, n'autorisant pas cette fonction avec .htaccess. L'URL Rewriting permet d'avoir des liens avec un nom simple est standard pour chaque lien, ce qui permet un bon travail des robots des moteurs et donc vous permet d'avoir un bon référencement pour votre site. Réécrire des URL dynamiquesVotre site dynamique comporte sûrement des URL de ce type : http://votresite.com/index.php?rubrique1=photo&page=index http://votresite.com/index.php?rubrique1=photo&rubrique2=vacance&page=index Ce qui n'est pas très joli, difficilement mémorisable et finalement qui pose de réels problèmes d'indexation aux moteurs de recherche. Nous allons donc réécrire ces URL d'une manière plus jolie. http://votresite.com/photo-index.php http://votresite.com/photo-vacance-index.php Pour commencer, nous aurons besoin de deux fichiers à la racine de votre site, .htaccess et erreur.php. Ce code est à insérer dans le fichier .htaccess : ErrorDocument 404 /erreur.php Explications: Dès lors où nous allons demander une adresse, elle va être interprétée comme erronée, dû fait de sa forme. /photo-index.php
Mais dès l'instant où nous aurons une erreur 404, nous allons la diriger vers un fichier erreur.php qui va gérer et reformater cette adresse. Le script PHP à éditer dans le fichier erreur.php : <?php $url=$_SERVER['REQUEST_URI']; // On récupère l'adresse demandée // Pour une forme /rubrique1-rubrique2-page.php if(preg_match('#^/(.+)-(.+)-(.+)\.php$#', $url, $match)) { // Récupèration des valeurs de l'expression régulière $rubrique1=$match[1]; // Le nom de la rubrique1 se trouve dans la 1ère parenthèse de l'expression $rubrique2=$match[2]; // Le nom de la rubrique2 se trouve dans la 2ème parenthèse de l'expression $page=$match[3]; // Le nom de la page se trouve dans la 3ème parenthèse // On modifie le code de statut HTTP header("HTTP/1.1 200 OK"); // On inclut la page index.php et on termine le script include("index.php"); exit(); } // Pour une forme /rubrique1-page.php elseif(preg_match('#^/(.+)-(.+)\.php$#', $url, $match)) { $rubrique1=$match[1]; $page=$match[2]; header("HTTP/1.1 200 OK"); include("index.php"); exit(); } else {echo "Cette page n'existe pas !";} ?> Explications: Examinons ensemble ce script.
Et ainsi de suite pour les autres formes d'URL. |