Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2010, 13:52
Avatar de Null_
Null_
 
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 15 años, 6 meses
Puntos: 30
Exquisited con RewriteRule

Exquisito porque quiero lograr exactamente lo que quiero, pero no puedo =(.
Quiero URLs como esta:

Código:
www.example.com/Que-es-Web-2.0
www.example.com/Solucion-move_upload_file-en-PHP
www.example.com/Problema-con-Notepad++
www.example.com/HTML/Como-utilizar-etiqueta-label
a partir de:

Código:
www.example.com/pagina.php?url=Que-es-Web-2.0
www.example.com/pagina.php?url=Solucion-move_upload_file-en-PHP
www.example.com/pagina.php?url=Problema-con-Notepad++
www.example.com/pagina.php?url=HTML/Como-utilizar-etiqueta-label
Es decir que las URLs contegan: números, letras mayúsculas y minúsculas, signo punto, signo más, diagonal, guión medio y guión bajo. Estos caracteres están controlados por PHP, así que no influye si uso una regex como (.*) o ([A-Z]+).

He logrado lo siguiente:

Código:
RewriteRule ^([A-Za-z0-9+.-_/]+)$ pagina.php?url=$1 [L]
Pero no me acepta el punto (.) ni el signo más (+), da error. Asi que debo dejarlo así:

Código:
RewriteRule ^([A-Za-z0-9-_/]+)$ pagina.php?url=$1 [L]
Cosa que no me gusta porque deberé eliminar dichos signos que irán en contra del SEO.

Otra cosa que logré fue esta, con la regla de cualquier caracter.

Código:
RewriteRule ^(.*)/$ pagina.php?url=$1 [L]
Debo poner una diagonal al final porque es el único signo que puede haber igual en todas las URLs. Funciona, pero va en contra de la estética de la URL, no del SEO. Me gustaría dejarlo así:

Código:
RewriteRule ^(.*)$ pagina.php?url=$1 [L]
Sería la solución magnifica, pero no funciona....

¿Alguna idea?
Gracias de antemano
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com