.htaccess y urls amigables

Bueno, os voy a esplicar por encima un poco del htaccess, que es y como se puede usar.

el archivo .htaccess (hypertext access) es el archivo por default, que digamos “configura el servidor” , y se pueden hacer muchas cosas con el, y una de ellas es poner las urls envez de index.php?op=ojo /op/ojo o como queramos.

para hacer este tipos de url se usa RewriteRule, que funciona tan simple como ponerlo con una url y con su replazo,  pero antes de empezar a remplazar, debemos decir que vamos hacerlo, con la opcion RewriteEngine.

tenemos una web, y para acceder al login se hacede dede miweb.com/index.php?op=login, y queremos que sea miweb.com/login.

RewriteEngine on
RewriteRule ^login index.php?op=login

RewriteEngine on
RewriteRule ^login index.php?op=login

Bueno, estos son links estaticos, asi que no generan ningun problema, creo que su aprendizaje es simple, pero ahora imaginamos que tenemos una galeria de fotos y queremos sacar foros por el id miweb.com/index.php?op=galeria&id=1 y queremos que sea miweb.com/galeria/1

RewriteEngine on
RewriteRule ^login index.php?op=login
RewriteRule ^galeria/([0-9-]+)/  index.php?op=galeria&id=$1

Bueno si os fijais, ahora pone una condicion, que es que solo admita numeros, y asi ponemos algo de seguridad, si pusieramos (.*) aceptaria cualquier caracter y seria perjudicial, y los valores $_GET se numeran asi $1 el primero $2 el segundo etc… id=1 $1 seria el 1 o el numero que estuviese en id.

Pero ahora, queremos hacer, el perfil de los usuarios, entonces sacamos los datos asi actualmente miweb.com/index.php?op=usuario&id=4, entonces queremos que seamiweb.com/perfil/4/SainTRC, bueno entonces deberiamos añadir a la opcion miweb.com/index.php?op=usuario&id=4&usuario=SainTRC, por motivos de contenido duplicado, para comprobar luego los valores y que no nos fatidien con contenido duplicado.

RewriteEngine on
RewriteRule ^login index.php?op=login
RewriteRule ^galeria/([0-9-]+)/  index.php?op=galeria&id=$1
RewriteRule ^perfil/([0-9-]+)/(.*)/ index.php?op=usuario&id=$1&usuario=$2

Entonces, ahora deberiamos comprobar lo siguiente, sacamos la variable usuario, y de la db sacamos el username de la id, si son iguales seguimos si no que nos lleven a una pagina de error, porque si entramos con urls diferentes al mismo contenido nos detectan como contenido duplicado y malo. aparte deberiamos poner el texto, sin espacios y tildes en la url para evitarnos problemas.

si teneis alguna duda, podeis postearla por aqui. y si algun error en mi esplicación tambien, que no soy expero

RewriteEngine onRewriteRule ^login index.php?op=login

Leave a comment

6 Comments.

  1. Muchas gracias, me fue muy útil!

  2. Holaaa! Ya conocia un poco el .htaccess y eso, pero mi duda es que si todos los servidores soportan el .htaccess? Ya que hace algun tiempo probe en varios hostings y nose si sera fallo mio, o que el hosting no lo soportaba pero no me funcionaba.. bueno un saludo man!

  3. no todos tienen por que soportarlo, pero los actualizados si (hoy en día, deberían ser todos)

Leave a Reply


[ Ctrl + Enter ]

Trackbacks and Pingbacks: