header



rdurl.jpg

Hace muchos muchos años, existía una red donde cada página era totalmente de código abierto (html) y cuando metías una dirección en tu navegador estabas accediendo a un nombre de archivo real metido en un ordenador lejano…

Pero estamos a mediados de 2007, y la facilidad de acceder directamente a una sección de un sitio gracias a que su dirección es fácil de recordar se ha impuesto a la “lógica” en cierto modo, pero esto requiere largos y “costosos prosesos”</teletienda> basados en usar una extensión de apache, lo que en principio ya cierra las puertas a los usuarios de IIS, por lo que, ¿No sería fantástico poder hacer casi lo mismo de otro modo?

Paso 1

Este tutorial presupone un cierto conocimiento de php, un lenguaje de programación para páginas web bastante sencillo.

Para empezar, vete a la configuración de tu servidor y establece como página de error 404 index.php, es importante que pongas una ruta relativa, ya que si no, la url cambiará y el truco no va a funcionar.

A continuación, posiblemente tu sitio en php se base en un archivo index con los contenidos globales (header, footer, navegación, etc), y un include a una variable pasada a través de la url, sino, es fácil adaptar el código a otros sistemas, edita el index.php y pon esto al principio:

<?php
$url = $_SERVER[’REQUEST_URI’];
$posicion = strrpos($url, "/") +1;
$includ = substr($url, $posicion);
if ( file_exists("i$includ.php")) {
header ("HTTP/1.x 200 OK");
}
?>

Lo primero es cambiar el header que envía el servidor a un 200 (todo correcto), ya que si no cualquier página accedida parecerá un error 404 a ojos de un rastreador de los buscadores, cosa mala, pero esto solo se hace si el archivo que va a llamar luego un include existe (i$include.php, luego explico porqué la i)., si no existe, simplemente seguirá con el header de 404.

Paso 2

Ahora, solo necesitas poner esto para llamar al archivo de turno:

<?php
if ( file_exists("i$includ.php")) { include ("i$includ.php"); }
else { include ("ihola.php"); }
?>

¿Porqué una i delante del nombre? Simple, muchos servidores tienen activada la opción de omitir las extensiones, es decir, tusitio.com/caca.php se convierte mágicamente en tusitio.com/caca, y eso tiene prioridad sobre este truco, por lo que si intentases poner “caca” te abriría el archivo, y no se produciría el falso error.

0 Responses to “Howto: Crear Uris monas sin mod_rewrite”


  1. No Comments

Leave a Reply