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?
Esta:
([a-z0-9]+)\/?
Continua hasta /
O si quieres terminar en / pero también incluirla:
(\w+(?:\/?))
Era cuestion de poner un simple cuantificador :)
([^/]+)
Cita de: raul338 en 2 Junio 2010, 16:56 PM
Era cuestion de poner un simple cuantificador :)
([^/]+)
Vos sabes que, yo tambien lo probé así... y tambien sacandole los corchetes.. pero no funciona.
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"?
Mira, nunca toque apache, asi que no puedo probar ahora :P
Cita de: Skeletron en 2 Junio 2010, 20:20 PM
Cita de: raul338 en 2 Junio 2010, 16:56 PM
Era cuestion de poner un simple cuantificador :)
([^/]+)
Vos sabes que, yo tambien lo probé así... y tambien sacandole los corchetes.. pero no funciona.
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:
(?:http://)?[^/]+/([^/]+)
Explicado seria:
(?:http://)? HTTP, opcional, el protocolo puede estar
[^/]+/ vendria a ser el dominio y la "/" barra
([^/]+) lo que sea despues de la barra :)
Otra cosa!, yo probaria quitando el inicio y fin de linea "^$"