Buenas.
Tengo un sitio en donde quiero tratar los datos de la URL de forma muy especifica, les cuento:
http://miweb.com/servicios/
Quiero que practicamente me pase la palabra "servicios" a una variablGET para consultar mis secciones con el nombre de "servicios".
http://miweb.com/opcion (no uso slash ' / ' al final).
Quiero tratar la palabra "opcion" de otra forma..
Las reglas que puse son:
RewriteRule ^(.+)/$ index.php?id=$1 [L]
RewriteRule ^(.+)[^/]$ index.php?id=ref&data=$1
Asi tal cual, tengo que comentar la segunda linea, porque al escribir en mi url "http://miweb.com/servicios/", intenta pasar "servicios" asi:
index.php?id=ref&data=servicios
Al comentar la segunda linea, la web funciona casi bien, ya que al escribir "miweb.com/servicios/", me manda:
index.phpid=servicios.
Pero si escribo: miweb.com/opcion
Me sale not found :S
Alguna idea ?
Cambie el orden de las reglas pensando que funciono, y no tampoco....
RewriteRule ^(.+)$ index.php?id=ref&data=$1
RewriteRule ^(.+)/$ index.php?id=$1 [L]
Sigue sin funcionar !
CitarRewriteRule ^(.+)[^/]$ index.php?id=ref&data=$1
Con el
. ,que yo sepa le dices que sea cualquier carácter menos \n (nueva linea).. por tanto se pasa por el **** si quieres que funcione solo cuando no incluya el shash (/) :xD.
Yo lo haría así:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.+)/$ index.php?id=$1
RewriteRule ^([a-z0-9_-]+)$ index.php?id=ref&data=$1 [NC]
</IfModule>
Resultado:http://miweb.com/servicios/ retorna:
Array ( [id] => servicios )
http://miweb.com/opciones retorna:
Array ( [id] => ref [data] => opciones )
Saludos
Cita de: drvy | BSM en 6 Octubre 2012, 00:45 AM
Con el . ,que yo sepa le dices que sea cualquier carácter menos \n (nueva linea).. por tanto se pasa por el **** si quieres que funcione solo cuando no incluya el shash (/) :xD.
Yo lo haría así:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.+)/$ index.php?id=$1
RewriteRule ^([a-z0-9_-]+)$ index.php?id=ref&data=$1 [NC]
</IfModule>
Resultado:
http://miweb.com/servicios/ retorna:
Array ( [id] => servicios )
http://miweb.com/opciones retorna:
Array ( [id] => ref [data] => opciones )
Saludos
Lo he escrito tal cual me dijiste, y no funciona cuando accedo al url:
http://miweb.com/servicios/, sale: Not Found.
Solo funciona cuando accedo url:
http://miweb.com/opcion, envia:
index.php?id=ref&data=opcion
Saludos !
o.O
Eso si que es extraño xD... seguro que no te olvidaste la barra inclinada (/) antes del $ ? Yo lo acabo de probar por 9999999 vez y funciona tan normal...
Saludos
Me retracto... Si funciono !
Habia puesto en el RewriteRule "indx.html", me falto la "e".
Y ya funciono....
Disculpa sabes de un buen manual para aprender sobre los patrones o sintaxis en RewriteRules ?
Saludos !