Foros del Web » Estrategias Digitales y Negocios Online » SEO »

Error en la expresión regular

Estas en el tema de Error en la expresión regular en el foro de SEO en Foros del Web. Hola, Estoy aprendiendo sobre expresiones regulares, SEO y URL amigables. Tengo una duda. Por qué esta linea funciona (es decir, redirecciona): redirectMatch 301 ^/?$ http://localhost/funciona ...
  #1 (permalink)  
Antiguo 27/08/2008, 03:24
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Pregunta Error en la expresión regular

Hola,

Estoy aprendiendo sobre expresiones regulares, SEO y URL amigables. Tengo una duda.

Por qué esta linea funciona (es decir, redirecciona):
redirectMatch 301 ^/?$ http://localhost/funciona


Y esta no:
redirectMatch 301 ^/?a$ http://localhost/funciona


No puedo poner nada después de la interrogación. Lo que intento hacer es redireccionar las URL dinámicas a estáticas:

RewriteRule ^([^/]*)\.html$ ?buscar=$1 [L]
redirectMatch 301 ^/?buscar=(.+)$ http://localhost/$1.html


Gracias anticipadas
__________________
JoniJnm.es
  #2 (permalink)  
Antiguo 27/08/2008, 07:32
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en la expresión regular

Tu expresión regular dice esto

^([^/]*)\.html$

- cero o más caracteres que NO son una barra /, luego un punto y la extensión html, capturando la secuencia de caracteres. Tené en cuenta que /.html se capturará también y se redireccionará a ?buscar=

^/?buscar=(.+)$

- cero o una barra / seguido de "buscar=" y una secuencia de 1 o más caracteres.
El problema es que ? es un metacaracter, por lo que tenés que escaparlo:

^/\?buscar=(.+)$

Probá si te funciona ahora.


Saludos.
  #3 (permalink)  
Antiguo 27/08/2008, 19:15
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Respuesta: Error en la expresión regular

Sigue sin funciona :(

/\$a$ http://localhost/funciona
http://localhost/$a SI REDIRECCIONA

redirectMatch 301 ^/\?a$ http://localhost/funciona
http://localhost/?a NO REDIRECCIONA

Es problema de la interrogación :S
__________________
JoniJnm.es
  #4 (permalink)  
Antiguo 27/08/2008, 20:32
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en la expresión regular

No puedo probar por mi cuenta en este momento, así que te pido que lo hagas.

Tal y como tenés esa regla:

redirectMatch 301 ^/\?a$ http://localhost/funciona

probá escribiendo
http://localhost/\a
http://localhost/a

si ambos casos son redireccionados a "/funciona", eso indica que el ? está siendo tomado como metacaracter en vez de como un ? "literal".


Saludos.
  #5 (permalink)  
Antiguo 27/08/2008, 20:58
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Respuesta: Error en la expresión regular

No lo he probado, pero ya no hace falta, lo he redireccionado por php
__________________
JoniJnm.es
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 02:28.