URLs lisibles dans un moteur en PHP
Dans le monde moderne, les adresses avec des chiffres comme
/page/1 sont considérées comme inélégantes. Il est
plus joli lorsque pour une page on indique non pas
son numéro, mais un nom textuel correspondant au
titre de la page, par exemple, comme ceci : /page/my-first-page.
De telles adresses sont appelées URLs lisibles (Uniform Resource Locator compréhensible pour l'humain).
La présence d'URLs lisibles est plus pratique pour l'utilisateur que
des numéros id qui ne lui disent rien.
De plus, pour les URLs lisibles, les moteurs de recherche
amélioreront le positionnement de notre site.
Le morceau de l'URL correspondant au nom de la page est appelé slug (slug). Ajoutons dans notre base de données une colonne pour les slugs pour nos pages :
| id | slug | title | content |
|---|---|---|---|
| 1 | my-first-page | title1 | <div> content1 </div> |
| 2 | my-second-page | title2 | <div> content2 </div> |
| 3 | my-third-page | title3 | <div> content3 </div> |
Reconvertissons maintenant notre moteur pour qu'il fonctionne avec des slugs au lieu des id. Pour cela, corrigeons l'expression régulière :
<?php
preg_match('#/page/([a-z0-9_-]+)#', $url, $match);
$slug = $match[1];
?>
Et dans la condition de recherche de page, indiquons le slug au lieu de l'id :
<?php
$query = "SELECT * FROM pages WHERE slug='$slug'";
?>
Convertissez votre moteur de site pour qu'il fonctionne avec des URLs lisibles. Testez son fonctionnement.