Título: Todos, menos 1 caracter en REGEX Publicado por: Skeletron en 2 Junio 2010, 12:45 pm Hola gente.
Resulta que estoy modificando un .htaccesses, hago algo así como una redireccion y demas. Pero en un lugar, necesito "continuar" siempre y cuando, haya cualquier cosa, MENOS una barra.. o sea, llegada la barra, terminar de tomar los datos. Por ahí leí que [^5] <<< esto hace que continue hasta un 5... Entonces, ([^/]) << deberia funcionar.. PERO NO FUNCIONA... Alguien sabe como hacerlo? Título: Re: Todos, menos 1 caracter en REGEX Publicado por: ~ Yoya ~ en 2 Junio 2010, 16:04 pm Esta:
Código: ([a-z0-9]+)\/? O si quieres terminar en / pero también incluirla: Código: (\w+(?:\/?)) Título: Re: Todos, menos 1 caracter en REGEX Publicado por: raul338 en 2 Junio 2010, 16:56 pm Era cuestion de poner un simple cuantificador :)
Código: ([^/]+) Título: Re: Todos, menos 1 caracter en REGEX Publicado por: Skeletron en 2 Junio 2010, 20:20 pm Era cuestion de poner un simple cuantificador :) Vos sabes que, yo tambien lo probé así... y tambien sacandole los corchetes.. pero no funciona.Código: ([^/]+) La direccion: http://localhost:8084/aaAA.AAaa No funciona. Es como que no estuviese funcionando bien... o yo la implemento mal (no creo, porque es muy corto el regex). Rewriterule ^([^/]+)$ index.php?x=$1 [L] Esa es la implementacion que estoy haciendo. Se supone que tendría que guardar a $1, todo lo que hay despues de la barra del .com, HASTA una "/".. o si no la hay, mejor. Sim embargo, puedo hacer así: Rewriterule ^([a-zA-Z_-]+)/?$ index.php?x=$1 [L] Que me toma todo lo que haya despues de la barra, siempre y cuando esas cosas sean: a-z A-Z - _ (los 2 anteriores es: _ y -) Pero si me llega por parametro un PUNTO en la url, no lo toma.. pero si se lo agrego con |. por ejemplo: Rewriterule ^([a-zA-Z_-\.]+)/?$ index.php?x=$1 [L] o si pruebo con una coma Rewriterule ^([a-zA-Z_-,]+)/?$ index.php?x=$1 [L] Da error... no lo toma. Tendré que "escribir" en el regex varios "OR"? Título: Re: Todos, menos 1 caracter en REGEX Publicado por: raul338 en 3 Junio 2010, 01:30 am Mira, nunca toque apache, asi que no puedo probar ahora :P
Era cuestion de poner un simple cuantificador :) Vos sabes que, yo tambien lo probé así... y tambien sacandole los corchetes.. pero no funciona.Código: ([^/]+) La direccion: http://localhost:8084/aaAA.AAaa No funciona. Es como que no estuviese funcionando bien... o yo la implemento mal (no creo, porque es muy corto el regex). Rewriterule ^([^/]+)$ index.php?x=$1 [L] Eso es por que esa expresion regular es muy generica, planteemos: ^([^/]+)$ aplicado a http://localhost:8084/aaAA.AAaa devuelve 3 cosas: http: localhost:8084 aaAA.AAaa y vos asignando el 1 estas asignando index.php?x=http: (creo) Se entiende? La expresion regular funciona, solo que tenes que limitar un poco mas: Código: (?:http://)?[^/]+/([^/]+) Explicado seria: Código: (?:http://)? HTTP, opcional, el protocolo puede estar Otra cosa!, yo probaria quitando el inicio y fin de linea "^$" |