| |

Cómo acceder a contenidos mediante la URL

Una de las opciones que más me gusta de la Wikipedia es la posibilidad de buscar contenidos usando la url. Para ello tan solo hay que escribir lo que queremos buscar después de esta dirección:
http://es.wikipedia.org/wiki/
Por ejemplo, si queremos buscar información sobre La Habana deberíamos poner lo siguiente:
http://es.wikipedia.org/wiki/La_Habana
Si encuentra algo lo muestra y si no es así, o te muestra una lista de posibilidades o te muestra una página de error 404.
Para poder incluir algo parecido en nuestro site deberemos modificar la configuración de Apache y crearnos un script (en este caso en PHP). Puede sernos muy útil si usamos tags o similares.


El funcionamiento es sencillo, redigiremos todos los accesos a una ruta a un script PHP, en el script comprobaremos cual era la url original y obteniendo el tag que hemos añadido, accederemos a la página correspondiente.
Imaginemos un caso, tenemos un blog que habla sobre cocina, recetas, etc… (http://www.miblogdecocina.com), el cual está dividido en varios apartados (carnes, pescados, sopas, postres, …) y hay tags por alimentos (cerdo, pollo, azúcar, …). Queremos que se pueda acceder a los contenidos, ya sean secciones o recetas por ingredientes, mediante una url: http://www.miblogdecocina.com/tags/[loquesea].
Lo primero es modificar la configuración de Apache, editamos el fichero http.conf y le añadimos la siguiente línea:

RedirectMatch /tags/* /tags.php

La directiva RedirectMatch redirecciona los accesos hacia un script, en este caso el que se encarga de comprobar la url y mostrar el resultado (/tags.php).
Después será necesario obtener de la URL original el tag que hemos usado y mostrar la información.


<?
// Obtenemos el tag
$origen = $_SERVER['REQUEST_URI'];
$rutatags = "/tags/";
$tag = substr($origen, strlen($rutatags));
// Comprobamos si hay una categoría con ese tag
  // Si existe mostramos la pagina
// En caso contrario buscamos recetas que
// tengan como ingrediente ese tag
  // Si existen las mostramos
  // Si no existen mostramos un mensaje de error
?>

Ya tenemos nuestro acceso directo a tags similar a la Wikipedia o a Flickr.

Similar Posts