URL ottimali nel motore PHP
Nel mondo moderno, gli indirizzi con numeri come
/page/1 sono considerati antiestetici. È
più bello quando per una pagina non viene indicato
il suo numero, ma un nome testuale che corrisponde
al titolo della pagina, ad esempio, così: /page/my-first-page.
Tali indirizzi sono chiamati URL ottimali (URL comprensibili per gli umani).
Avere URL ottimali è più conveniente per l'utente rispetto
a numeri id che non gli dicono nulla.
Inoltre, i motori di ricerca miglioreranno la
posizione del nostro sito grazie agli URL ottimali.
La parte dell'URL corrispondente al nome della pagina è chiamata slug (slug). Aggiungiamo alle nostre pagine nel database una colonna per gli slug:
| 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> |
Riadattiamo ora il nostro motore per lavorare con gli slug invece che con gli id. Per fare ciò, modifichiamo l'espressione regolare:
<?php
preg_match('#/page/([a-z0-9_-]+)#', $url, $match);
$slug = $match[1];
?>
E nella condizione di ricerca della pagina specifichiamo lo slug invece dell'id:
<?php
$query = "SELECT * FROM pages WHERE slug='$slug'";
?>
Riadatta il motore del tuo sito per lavorare con gli URL ottimali. Testane il funzionamento.