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

Necesito completar ésta expresión regular para htaccess

Estas en el tema de Necesito completar ésta expresión regular para htaccess en el foro de Apache en Foros del Web. Hola a todos, estoy tratando de crear una zona en mi página basada en rewrites de apache, quiero que al final de cada linea haya ...
  #1 (permalink)  
Antiguo 12/11/2013, 09:32
 
Fecha de Ingreso: noviembre-2010
Ubicación: Badajoz
Mensajes: 94
Antigüedad: 13 años, 5 meses
Puntos: 4
Necesito completar ésta expresión regular para htaccess

Hola a todos, estoy tratando de crear una zona en mi página basada en rewrites de apache, quiero que al final de cada linea haya una barra, eso está conseguido con lo siguiente:

Código PHP:
RewriteCond %{REQUEST_URI} !/$  <-- En caso de que la url no termine en /
RewriteRule ^zona(.*)?  /zona$1/ [L,R=301] <-- y empiece por zona (seguido de lo que sea)(<--opcionalmente), redirijo a /zona{variable}/ 
Pero hay un pequeño problema, no se como hacer para que la barra al final sea opcional, (si, -> /? <-) pero a la vez sea el siguiente caracter obligatorio en caso de haber más caracteres, vamos que ese primer caracter en caso de haber más caracteres, sí o sí tiene que ser una barra, no me vale excluir con [^0-9A-Za-z] ya que ahí se seguirían escapando caracteres y especificar uno por uno me parece matar moscas a cañonazos:

Código PHP:
RewriteCond %{REQUEST_URI} !/$ <-- En caso de que la url no termine en /
RewriteRule ^zona([^0-9A-Za-z])?(.*)?  /zona$1$2/ [L,R=301] <-- y empiece por zona (seguido de lo que no sea alfanumerico)(<--opcionalmente(seguido de lo que sea de nuevo)(<--opcionalmente también)...
#Ni falta hace decir que no termina de convencerme ésta forma tampoco... 
En resumen para no enrollarme más, necesito que si accedes a la url:

loquesea.com/zona -> SI redireccione a loquesea.com/zona/
loquesea.com/zona/asdf -> SI redireccione a loquesea.com/zona/asdf/

loquesea.com/zonano -> NO redireccione a loquesea.com/zonano/
loquesea.com/zona_ -> NO redireccione a loquesea.com/zona_/
loquesea.com/zona, -> NO redireccione a loquesea.com/zona,/
loquesea.com/zona! -> NO redireccione a loquesea.com/zona!/
loquesea.com/zonano/as -> NO redireccione a loquesea.com/zonano/as/

Se me da fatal explicarme, espero que me podáis entender bien, estoy seguro de que me falta una chorrada y ya he leído muchos manuales de expresiones regulares sin llegar a conseguirlo...

Muchas gracias de antemano y un saludo!

Edit... Creo que el camino a seguir podría estar por aquí pero sigo sin conseguir que funcione estrictamente cuando debería...
Código PHP:
RewriteRule ^zona([^.|/?].*)?  /zona$1/ [L,R=301

Última edición por crash1912; 12/11/2013 a las 09:52

Etiquetas: completar, htaccess, redireccion, regular, url
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 03:22.