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) y (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]