Foros del Web » Administración de Sistemas » Apache »

Ayuda con Mod Rewrite, Expresiones Regulares y los guiones

Estas en el tema de Ayuda con Mod Rewrite, Expresiones Regulares y los guiones en el foro de Apache en Foros del Web. Hola. Busco por favor ayuda de alguien que domine muy bien las expresiones regulares. Resulta que generalmente el " - " es como el separador ...
  #1 (permalink)  
Antiguo 06/07/2009, 19:33
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Ayuda con Mod Rewrite, Expresiones Regulares y los guiones

Hola. Busco por favor ayuda de alguien que domine muy bien las expresiones regulares.

Resulta que generalmente el " - " es como el separador de variables a la hora de imprimir una URL con Mod Rewrite. Mi problema es, si dentro del valor de una variable existe este guión, se trunca todo.

En palabras prácticas, digamos que quiero imprimir amigablemente una URL que lee dos variables, por ejemplo:

http: // www. dominio.com/index.php?nombre=Fulatino&apellido=Perez

Se imprimiría así:

http://www.dominio.com/Fulatino-Perez.htm usando un Mod Rewrite sencillo como:

Cita:
RewriteRule (.*)-(.*)\.htm$ index.php?nombre=$1&apellido=$2 [L]
Mi problema es:

Si alguna de estas dos variables (nombre o apellido) tiene el guión dentro del valor de su string, se jode todo.

O sea, si quisiera imprimir el nombre, por ejemplo: Pedro Da-Vinci el Mod Rewrite va tomar a la variable "apellido" como "Da" y no "Da-Vinci", en este caso, y obviamente no va encontrar nada cuando busque en la base de datos.

Mi pregunta del millón ahora es:

Cómo le hago con Mod Rewrite y las expresiones regulares para decirle que, si dentro del valor de la variable encuentra el "-" lo tome como parte del valor de la variable y no como el separador de variables?

Si alguien sabe le quedo infinitamente agradecido, llevo mucho rato lidiando con ésto y naranjas de nada. Ensayé cosas como:

Cita:
RewriteRule ([a-z0-9_-]*)-([a-z0-9_-]*)\.htm$ index.php?nombre=$1&apellido=$2 [L]
Pero no me sirvieron

Les agradezco cualquier ayuda!!
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.

Última edición por SI TAN SOLO TUVIERA; 06/07/2009 a las 19:47
  #2 (permalink)  
Antiguo 06/07/2009, 21:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Ayuda con Mod Rewrite, Expresiones Regulares y los guiones

No se puede, simplemente porque el motor de expresiones regulares no tiene cómo saber dónde empieza la primera variable y dónde termina, ya que el valor con guión puede estar tanto en la primera como en la segunda variable. Debes replantear el usar guión en los valores o ver alguna forma de "escaparlo" para que no se imprima en la URL
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 06/07/2009, 23:01
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: Ayuda con Mod Rewrite, Expresiones Regulares y los guiones

Gracias David.

La solución era tan sencilla que casi me las arranco cuando me di cuenta como arreglarlo.

Este era el mod que estaba usando:

Cita:
RewriteRule (.*)-(.*)\.htm$ index.php?nombre=$1&apellido=$2 [L]
Sólo cambié el "-" por "_" y ya no me crea problema.

Cita:
RewriteRule (.*)_(.*)\.htm$ index.php?nombre=$1&apellido=$2 [L]
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #4 (permalink)  
Antiguo 04/02/2011, 07:13
Avatar de igualacero  
Fecha de Ingreso: septiembre-2010
Mensajes: 296
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: Ayuda con Mod Rewrite, Expresiones Regulares y los guiones

Hola SI TAN SOLO TUVIERA se que hace mucho tiempo de este tema pero me encuentro en tu misma situación y cuando utilizo para separar en el .htaccess el guión - y dentro de un campo de la base de datos que es un string separado por uno o varios guiones no me carga la url.
He probado el tema del guión bajo y funciona perfectamente pero quiero conseguir hacerlo todo con guiones normales que son mejores para el posicionamiento http://www.mattcutts.com/blog/dashes-vs-underscores/.
Como ha pasado tiempo quería saber si conseguiste solucionarlo con guiones.
Un saludo.
__________________
igualacero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:05.