Para facilitar el posicionamiento de nuestras páginas en los buscadores se recomienda una estructura de URL sencilla, con palabras fáciles de leer y evitando números o parámetros poco entendibles. Este tipo de rutas son llamadas URLs amigables por que son fáciles de entender por los usuarios y los buscadores.
Ejemplo:
Al navegar entre categorías y sub-categorías de una tienda se pueden utilizar identificadores de la base de datos o utilizar keywords (palabras clave) como parámetros, pero la forma mas corta y sencilla es usar usar keywords estructurados como si fueran carpetas.
IDs: | http://domain.com/products.php?category=3&subcategory=7 |
Keywords: | http://domain.com/products.php?category=mens&subcategory=shoes |
Amigable: | http://domain.com/mens/shoes/ |
Como se observa la tercera forma es fácil de entender e incluso mas corta.
mod_rewrite
El módulo mod_rewrite del servidor web Apache es un motor que permite la creación de URLs amigable utilizando expresiones regulares para indentificar las rutas y luego definir que archivos internos los procesarán.
Para utilizar mod_rewrite es necesario crear un archivo llamado .htaccess y ubicarlo en la carpeta donde se encuentran nuestros archivos e incluir las reglas de acuerdo a nuestro proyecto.
Las directivas a utilizar para la creación de URLs amigables son:
RewriteEngine
activa el módulo para la reescritura de URLs.RewriteBase
define la carpeta base donde se encuentran nuestros archivos.RewriteRule
describe las reglas para las rutas, tiene dos parámetros: el primero es la expresión regular para identificar a la ruta y la segunda es el archivo que ha de utilizarse en caso de coincidencia.
Creando las URLs Amigables
Entonces creamos un archivo .htaccess que contendrá el siguiente código:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/(.*)/ products.php?category=$1&subcategory=$2 [L]
RewriteRule ^(.*)/ products.php?category=$1 [L]
Cómo se observa: la primera regla para detecta cuando hay dos niveles y la segunda cuando sólo hay un nivel, además notar que se utilizan las coincidencias ($1
, $2
) como parámetros en los archivos a utilizar.
Creando el archivo de ejemplo
Para completar el ejemplo, creamos un archivo PHP que obtenga e imprima los parámetros de las rutas creadas, con esto podemos comprobar que se están recibiendo los parámetros correctos.
<?php
$category = filter_input(INPUT_GET, 'category', FILTER_SANITIZE_STRING);
$subcategory = filter_input(INPUT_GET, 'subcategory', FILTER_SANITIZE_STRING);
echo 'Products
';
echo "Category: " . $category;
echo '
';
echo "Subcategory: " . $subcategory;
Podemos comprobar que las siguientes rutas funcionan de la misma forma:
kodetop.com/demo/urls-amigables/products.php?category=mens&subcategory=shoes
kodetop.com/demo/urls-amigables/mens/shoes/
Envíar Comentario
En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas
<pre></pre>