CNC en el motor en PHP
En el mundo moderno, las direcciones con números como
/page/1 se consideran poco atractivas. Es más
bonito cuando para una página no se especifica
su número, sino un nombre de texto que corresponda al
título de la página, por ejemplo, así: /page/my-first-page.
Estas direcciones se llaman CNC - enlaces comprensibles
para humanos. La presencia de CNC es más conveniente para el usuario que
los números de identificación id que no le dicen nada.
Además, los motores de búsqueda mejorarán la posición
de nuestro sitio web gracias a los CNC.
La parte de la URL que corresponde al nombre de la página se llama slug. Vamos a añadir una columna para los slugs a nuestras páginas en nuestra base de datos:
| 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> |
Ahora adaptemos nuestro motor para que funcione con slugs en lugar de IDs. Para ello, corrijamos la expresión regular:
<?php
preg_match('#/page/([a-z0-9_-]+)#', $url, $match);
$slug = $match[1];
?>
Y en la condición de búsqueda de la página, especificaremos el slug en lugar del ID:
<?php
$query = "SELECT * FROM pages WHERE slug='$slug'";
?>
Adapte el motor de su sitio web para que funcione con CNC. Pruebe su funcionamiento.