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 onRewriteRule ^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.



One Response to “Urls amigables con apache”
By de on May 13, 2008 | Reply