Generar URLs amigables con htacces
Las URLs amigables son más fáciles de usar y de recordar por los usuarios y también son mejores para el posicionamiento en buscadores. Además describen mucho mejor los enlaces dentro de una página web y añade un mayor nivel de profesionalidad a nuestras webs.
De todas formas, cuando hemos creado una página dinámica en PHP lo normal es que tengamos URL no amigables. ¿Cómo las convertimos en amigables de manera automática? Una manera de hacerlo es con un archivo .htaccess y gracias a Apache y su mod_rewrite.
mod_rewrite es un módulo de Apache que permite manipular en el servidor las URLs solicitadas. Es decir, cuando llega al servidor la solicitud de una URL, esta se comprueba con respecto a una serie de reglas creadas con Expresiones Regulares creadas para detectar un patrón determinado. Si se encuentra ese patrón en el URL y se cumple la condición impuesta por la Expresión Regular se sustituye el patrón por una cadena de texto o por una acción determinada.
En el ejemplo que vamos a ilustrar vamos a tener una lista de usuarios con link a su perfil usando urls amigables.
Como urls no amigables tendremos:
http://www.yourdomain.com/users.php?id=1
Y como url amigable entenderíamos:
http://www.yourdomain.com/juan
Para conseguir este efecto, necesitaremos crear un archivo .htaccess y añadir el siguiente código:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.yourdomain.com
RewriteRule (.*) http://yourdomain.com/$1 [R=301,L]
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ users.php?user=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ users.php?user=$1
Y modificar los links hacia los perfiles de los usuarios añadiendo la url amigable en vez de la no amigable.
hola
muy bueno el tutorial ya lo hice pero tengo una dudo
en mi caso es asi
ORewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ detalle-producto.php?nombre=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ detalle-producto.php?nombre=$1
donde detalle-producto es el pagina en php donde redirecciono y nombre
es el nombre del producto en el registro de la base de datos
mi duda es como deberia ponero en el hipervinculo
ya que normalmente ponemos
<a href="detalle-producto.php?id=»>
como deberia poner ya que hice la modificacion en el htacces?
TIENES LOS EJEMPLOS EN PHP QUE ME PUEDAS PASAR?
Amigo pero como hago para generar dinamicamente los enlaces amigables en la pagina, aparte del .htaccess
si alguien lo sabe a mi también me gustaría saberlo…
Hola gracias por su informacion pero no paro de dar vueltas a como adaptar el .htaccees a una url de 4 variables y no lo consigoo como quedaria si la url fuera index.php?btitulo=algo&bautor=alguien&bgenero=Accion&bvoz=espanola