Urls amigables con apache

February 26th, 2008 | by necudeco |

Una forma de obtener mejor posicionamiento en los buscadores y de hacer mas accessibles los sitios web para nuestros usuarios es ofrecer urls amigables. Lo de los buscadores es porque los spiders dejan de rastear a partir del 3 parametro de una url.

http://servidor.com/index.php?id=34&car=jsx&ho=43

A partir de ho= para adelante ya no indexan. En cambio esa misma url puede ser representada de diferentes maneras:

http://servidor.com/34/js/43
http://servidor.com/id,34/car,js/ho,43
http://servidor.com/index.php/43,js,34
etc ….

Para realizar eso utilizamos el modulo mod_write de apache.

Lo que hace este modulo, es antes de pasar cualquier solicitud a nuestro sistema web, reconvierte las Urls en los formatos adecuados.

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^index.php/(.*)/(.*)/?$ index.php?opt=$1&id=$2 [L]
RewriteRule ^index.php/(.*)/?$ index.php?opt=$1 [L]
Rewriterule ^admin.php/(.*)/(.*)$ admin.php?opt=$1&id=$2 [L]
Rewriterule ^admin.php/(.*)$ admin.php?opt=$1 [L]

En las dos primeras lineas estamos activando el modulo. Y luego definimos unas reglas ( expresiones regulares ) sobre como deben ser interpretadas las urls.

En la primera regla por ejemplo, se distinguen 4 partes:

  • RewriteRule
    Indicamos que vamos a definir una regla
  •  ^index.php/(.*)/(.*)/?$
    Le decimos que esta regla se aplica para cualquier url que concuerde con ese formato. En este caso dice que la URL comienza con index.ph, y tiene dos parametros separados por / … tambien dice que el ultimo / es opcional
  • index.php?opt=$1&id=$2
    Le decimos como tiene que interpretar los dos parametros anteriores.
  • [L]
    Indica que si la Url solicitada, calza con la expresion regular ahi nomas termine de evaluar.

Si quieren probarlo en su php pueden poner:

<?php
print_r($_GET);
print_r($_SERVER[”REQUEST_URI”]);
?>

Ahi veran, los parametro recibidos por la url y la misma url solicitada por el navegador, y asi podemos verficar que los parametros se enlazan correctamente con nuestras opciones.

  1. One Response to “Urls amigables con apache”

  2. By de on May 13, 2008 | Reply


Post a Comment