URL-uri prietenoase în motorul pe PHP
În lumea modernă, adresele cu cifre de genul
/page/1 sunt considerate urâte. Este
mult mai frumos atunci când pentru o pagină se indică nu
numărul ei, ci un nume textual care corespunde
titlului paginii, de exemplu, așa: /page/my-first-page.
Astfel de adrese se numesc URL-uri prietenoase (URL-uri ușor de înțeles de oameni).
Prezența URL-urilor prietenoase este mai convenabilă pentru utilizator decât
numeroasele id care nu-i spun nimic.
În plus, datorită URL-urilor prietenoase, motoarele de căutare
vor crește pozițiile site-ului nostru.
Bucata de URL care corespunde numelui paginii se numește slug (slug). Să adaugăm în baza noastră de date pentru paginile noastre o coloană cu slug-uri:
| 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> |
Să reproiectăm acum motorul nostru să lucreze cu slug-uri în loc de id-uri. Pentru asta vom corecta expresia regulată:
<?php
preg_match('#/page/([a-z0-9_-]+)#', $url, $match);
$slug = $match[1];
?>
Și în condiția de căutare a paginii vom indica slug-ul în loc de id:
<?php
$query = "SELECT * FROM pages WHERE slug='$slug'";
?>
Reproiectați motorul site-ului dvs. să lucreze cu URL-uri prietenoase. Testați funcționarea lui.