Discussion:
acerca de mod_rewrite
c***@lugmen.org.ar
2012-05-18 04:19:43 UTC
Permalink
Buenas,

estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&variable2=dato2

he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
funciona sin problemas, por ejemplo, una de las pruebas fue:

[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]


luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.

volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
tecla, por ejemplo:

RewriteRule index-variable1-(.*)-variable2-(.*)\.htm$
index.php?variable1=$1&variable2=$2 [L]

RewriteRule index/variable1/(.*)/variable2/(.*)/
index.php?variable1=$1&variable2=$2 [R]

RewriteRule ^/variable1/([a-zA-Z0-9]+)/variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&variable2=$2 [PT]

RewriteRule ^variable1/(.+)/variable2/(.+)$
index.php?variable1=$1&variable2=$2 [PT]

no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
hasta probe con algo mas simple, parecido a la prueba del link:

RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]

tampoco, ni se mosquea la traduccion.

He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.

Un saludo.
Manuel Fernando Aller
2012-05-18 13:42:45 UTC
Permalink
Post by c***@lugmen.org.ar
Buenas,
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
RewriteRule index-variable1-(.*)-variable2-(.*)\.htm$
index.php?variable1=$1&variable2=$2 [L]
RewriteRule index/variable1/(.*)/variable2/(.*)/
index.php?variable1=$1&variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)$
index.php?variable1=$1&variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
Me parece que es al revés. el mod_rewrite te sirve para escribir:
sitio.com/bla/2/

y que en realidad le estés pegando a

sitio.com/bla.php?id=2

Y se usa para que sea más 'search engine' frliendly.

Slds,
--
Manuel
celodrake
2012-05-18 13:52:53 UTC
Permalink
Post by Manuel Fernando Aller
Post by c***@lugmen.org.ar
Buenas,
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
RewriteRule index-variable1-(.*)-variable2-(.*)\.htm$
index.php?variable1=$1&variable2=$2 [L]
RewriteRule index/variable1/(.*)/variable2/(.*)/
index.php?variable1=$1&variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)$
index.php?variable1=$1&variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.

Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
esta forma:

<a href="/bla/2/">Home</a>

luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
Manuel Fernando Aller
2012-05-18 14:34:18 UTC
Permalink
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&**variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
RewriteRule index-variable1-(.*)-**variable2-(.*)\.htm$
index.php?variable1=$1&**variable2=$2 [L]
RewriteRule index/variable1/(.*)/**variable2/(.*)/
index.php?variable1=$1&**variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/**variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&**variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)**$
index.php?variable1=$1&**variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
--
Manuel
celodrake
2012-05-18 15:11:40 UTC
Permalink
Post by Manuel Fernando Aller
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&**variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
RewriteRule index-variable1-(.*)-**variable2-(.*)\.htm$
index.php?variable1=$1&**variable2=$2 [L]
RewriteRule index/variable1/(.*)/**variable2/(.*)/
index.php?variable1=$1&**variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/**variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&**variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)**$
index.php?variable1=$1&**variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es que
lo he probado asi como me lo comentas, pero me surge otro problema,
cuando hago clic en los items de menu la url se va como acumulando y se
rompe todo, es decir, las fotos ni css se cargan.

Para ser mas claro, tengo ponele dos items de menu:

<a href="/bla/1/">Home</a> | <a href="/bla/2/">Contacto</a>

Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos; hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Santiago Barchetta
2012-05-18 15:59:49 UTC
Permalink
como bien dice Manuel, el mod_rewriter te permite mapear urls en el formato
que se te cante, a un formato que el servidor entienda...para esto, tu
aplicación va a tener que tener una política de routing de las urls, ya sea
armarlas a mano, o automaticamente.

la acumulación de urls sucede por que la regla que estas usando para mapear
las urls esta mal, vas atener que jugar con esa regla...la verdad, no me
acuerdo bien la sintaxis, si tengo un ratito en la tarde lo chequeo

-- Santiago Barchetta --
Web Development
Post by Manuel Fernando Aller
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&****variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
RewriteRule index-variable1-(.*)-****variable2-(.*)\.htm$
index.php?variable1=$1&****variable2=$2 [L]
RewriteRule index/variable1/(.*)/****variable2/(.*)/
index.php?variable1=$1&****variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/****variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&****variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)****$
index.php?variable1=$1&****variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le pasa
a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es que
lo he probado asi como me lo comentas, pero me surge otro problema, cuando
hago clic en los items de menu la url se va como acumulando y se rompe
todo, es decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> | <a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos; hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
celodrake
2012-05-18 16:12:09 UTC
Permalink
buenisimo, al menos se va acotando el problema, reglas.
Se agradeceria mucho tu ayuda en esto de las reglas, ya que he jugado
bastane con ellas, basandome en ejemplos encontrados y en expresiones
regulares propias pero sin suerte.
Post by Santiago Barchetta
como bien dice Manuel, el mod_rewriter te permite mapear urls en el formato
que se te cante, a un formato que el servidor entienda...para esto, tu
aplicación va a tener que tener una política de routing de las urls, ya sea
armarlas a mano, o automaticamente.
la acumulación de urls sucede por que la regla que estas usando para mapear
las urls esta mal, vas atener que jugar con esa regla...la verdad, no me
acuerdo bien la sintaxis, si tengo un ratito en la tarde lo chequeo
-- Santiago Barchetta --
Web Development
Post by Manuel Fernando Aller
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&****variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
RewriteRule index-variable1-(.*)-****variable2-(.*)\.htm$
index.php?variable1=$1&****variable2=$2 [L]
RewriteRule index/variable1/(.*)/****variable2/(.*)/
index.php?variable1=$1&****variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/****variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&****variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)****$
index.php?variable1=$1&****variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le pasa
a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es que
lo he probado asi como me lo comentas, pero me surge otro problema, cuando
hago clic en los items de menu la url se va como acumulando y se rompe
todo, es decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> |<a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos; hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Andres Morales
2012-05-18 20:15:19 UTC
Permalink
Post by celodrake
buenisimo, al menos se va acotando el problema, reglas.
Se agradeceria mucho tu ayuda en esto de las reglas, ya que he jugado
bastane con ellas, basandome en ejemplos encontrados y en expresiones
regulares propias pero sin suerte.
Post by Santiago Barchetta
como bien dice Manuel, el mod_rewriter te permite mapear urls en el formato
que se te cante, a un formato que el servidor entienda...para esto, tu
aplicación va a tener que tener una política de routing de las urls, ya sea
armarlas a mano, o automaticamente.
la acumulación de urls sucede por que la regla que estas usando para mapear
las urls esta mal, vas atener que jugar con esa regla...la verdad, no me
acuerdo bien la sintaxis, si tengo un ratito en la tarde lo chequeo
-- Santiago Barchetta --
Web Development
Post by Manuel Fernando Aller
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
estoy trabajando con una web programada en php, la cual carga
Post by c***@lugmen.org.ar
direcciones
tales como index.php?variable1=dato1&******variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la
barra
de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy
en
la
RewriteRule index-variable1-(.*)-******variable2-(.*)\.htm$
index.php?variable1=$1&******variable2=$2 [L]
RewriteRule index/variable1/(.*)/******variable2/(.*)/
index.php?variable1=$1&******variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/*****
*variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&******variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)******$
index.php?variable1=$1&******variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la
pagina
de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le pasa
a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es que
lo he probado asi como me lo comentas, pero me surge otro problema, cuando
hago clic en los items de menu la url se va como acumulando y se rompe
todo, es decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> |<a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos; hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Yo te diría que pusieras en tu .htaccess algo como:

# Habilito la reescritura
RewriteEngine On
# Todo pasa por index.php
RewriteRule ^(.*)$ index.php?/$1 [L]

y en index.php procesaras $_SERVER['REQUEST_URI'] para saber qué es lo que
se quiso hacer.

Nota: en el .htaccess deberías no procesar los archivos y directorios que
son públicos (de donde obtenés las imágenes, css, javascript, etc.) para
evitar que index.php tuviera que procesar todo.
Lucas Hirschegger
2012-05-19 09:16:11 UTC
Permalink
Post by celodrake
buenisimo, al menos se va acotando el problema, reglas.
Se agradeceria mucho tu ayuda en esto de las reglas, ya que he jugado
bastane con ellas, basandome en ejemplos encontrados y en expresiones
regulares propias pero sin suerte.
Hola,

Por ahi te sirve, es el .htaccess que me creo wordpress cuando lo instale y
configuras URLs simples:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
#RewriteEngine On
#RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]

Saludos!
--
Lucas H.-
MAbeeTT
2012-05-20 14:42:06 UTC
Permalink
Post by Manuel Fernando Aller
Post by celodrake
 Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&**variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
RewriteRule index-variable1-(.*)-**variable2-(.*)\.htm$
index.php?variable1=$1&**variable2=$2 [L]
RewriteRule index/variable1/(.*)/**variable2/(.*)/
index.php?variable1=$1&**variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/**variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&**variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)**$
index.php?variable1=$1&**variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
 Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el  mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es que lo
he probado asi como me lo comentas, pero me surge otro problema, cuando hago
clic en los items de menu la url se va como acumulando y se rompe todo, es
decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> | <a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos;
^^

porque la foto no está en site.com/bla/1/foto.jpg (ni su forma
reescrita por el módulo)

Rearmá tus refenrecias, y en todo caso reubicá las fotos y estilos.

Apretá f12 en chromium o ctrl+shift+i en firefox y andá viendo el
fuente, los quejidos del browser, etc.


hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
--
             .::MAbeeTT::.

 mabeett [at] gmail [ dot] com
celodrake
2012-05-24 15:54:17 UTC
Permalink
Gente, con toda la info que me tiraron logré hacer que la web se vea
como debe ser y que la url sea amigable, el problema ahora es que la url
amigable va creciendo a medida que hago clic en los items del menu
principal. Van unos ejemplos para que puedan darse una idea y ver si me
pueden entender y ayudar.

El menu principal tiene tabs con links de tipo <a
href="section/home/action/index/">Home</a> <a
href="section/contact/action/index/">Contact us</a> y asi...

Esto se traduce en index.php?section=home&action=index por ejemplo y la
regla que lo logra es:

RewriteRule ^section/([a-zA-Z0-9]+)/action/([a-zA-Z0-9]+)/$
index.php?section=$1&action=$2 [L]

Luego cuando yo llego a la pagina por primera vez todo se ve bien, hago
clic a uno de los tabs y todo sigue en orden, en la barra de navegacion
puedo ver http://localhost/section/contact/action/index/ luego, hago
clic en cualquier otro tab y la url se concatena el
/section/home/action/index/ al a url anterior, quedando algo como
http://localhost/section/contact/action/index/section/services/action/index/
y asi se va concatenando y creciendo a medida que voy haciendo clic en
los items del menu, saliendo el error 404 obviamente.

A que se puede estar debiendo esto? en que le estoy pifiando en la regla
del .htaccess?

Desde ya muchas gracias por la ayuda/referencia/critica/idea que puedan
darme.

Saludos.
Post by MAbeeTT
Post by Manuel Fernando Aller
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&**variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la barra de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy en la
RewriteRule index-variable1-(.*)-**variable2-(.*)\.htm$
index.php?variable1=$1&**variable2=$2 [L]
RewriteRule index/variable1/(.*)/**variable2/(.*)/
index.php?variable1=$1&**variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/**variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&**variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)**$
index.php?variable1=$1&**variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la pagina de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es que lo
he probado asi como me lo comentas, pero me surge otro problema, cuando hago
clic en los items de menu la url se va como acumulando y se rompe todo, es
decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> |<a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos;
^^
porque la foto no está en site.com/bla/1/foto.jpg (ni su forma
reescrita por el módulo)
Rearmá tus refenrecias, y en todo caso reubicá las fotos y estilos.
Apretá f12 en chromium o ctrl+shift+i en firefox y andá viendo el
fuente, los quejidos del browser, etc.
hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Andres Morales
2012-05-24 17:03:21 UTC
Permalink
Gente, con toda la info que me tiraron logré hacer que la web se vea como
debe ser y que la url sea amigable, el problema ahora es que la url
amigable va creciendo a medida que hago clic en los items del menu
principal. Van unos ejemplos para que puedan darse una idea y ver si me
pueden entender y ayudar.
El menu principal tiene tabs con links de tipo <a
href="section/home/action/**index/">Home</a> <a
href="section/contact/action/**index/">Contact us</a> y asi...
Esto se traduce en index.php?section=home&action=**index por ejemplo y la
RewriteRule ^section/([a-zA-Z0-9]+)/**action/([a-zA-Z0-9]+)/$
index.php?section=$1&action=$2 [L]
Luego cuando yo llego a la pagina por primera vez todo se ve bien, hago
clic a uno de los tabs y todo sigue en orden, en la barra de navegacion
puedo ver http://localhost/section/**contact/action/index/<http://localhost/section/contact/action/index/> luego, hago clic en cualquier otro tab y la url se concatena el
/section/home/action/index/ al a url anterior, quedando algo como
http://localhost/section/**contact/action/index/section/**
services/action/index/<http://localhost/section/contact/action/index/section/services/action/index/>y asi se va concatenando y creciendo a medida que voy haciendo clic en los
items del menu, saliendo el error 404 obviamente.
A que se puede estar debiendo esto? en que le estoy pifiando en la regla
del .htaccess?
Desde ya muchas gracias por la ayuda/referencia/critica/idea que puedan
darme.
Saludos.
Post by MAbeeTT
Post by Manuel Fernando Aller
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&****variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y el modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la
barra
de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy
en
la
RewriteRule index-variable1-(.*)-****variable2-(.*)\.htm$
index.php?variable1=$1&****variable2=$2 [L]
RewriteRule index/variable1/(.*)/****variable2/(.*)/
index.php?variable1=$1&****variable2=$2 [R]
RewriteRule ^/variable1/([a-zA-Z0-9]+)/****variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&****variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)****$
index.php?variable1=$1&****variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la
pagina
de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le
pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es
que lo
he probado asi como me lo comentas, pero me surge otro problema, cuando hago
clic en los items de menu la url se va como acumulando y se rompe todo, es
decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> |<a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos;
^^
porque la foto no está en site.com/bla/1/foto.jpg (ni su forma
reescrita por el módulo)
Rearmá tus refenrecias, y en todo caso reubicá las fotos y estilos.
Apretá f12 en chromium o ctrl+shift+i en firefox y andá viendo el
fuente, los quejidos del browser, etc.
hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Estemm... sigo pensando que lo mejor sería hacer el procesamiento por el
lado de php.

Si hacés:

# Habilito la reescritura
RewriteEngine On
# Todo pasa por index.php
RewriteRule ^(.*)$ index.php?/$1 [L]

y en index.php ponés las rutas a las que querés enviarlo (es decir, qué
controlador maneja cada una o si el mismo index.php maneja todo), con el
contenido de $_SERVER['REQUEST_URI'] podrías trabajarlo directamente contra
un array de URIs permitidas contra controladores que las manejen.

De hecho, podés filtrar las URIs con expresiones regulares como quieras y
pasarle a tus controladores los datos de manera correcta.

Es solo una opinión.

Saludos!

Andrés

PD: Dentro de lo posible evitá el top_posting: es.wikipedia.org/wiki/Top-
posting
c***@lugmen.org.ar
2012-05-25 18:01:20 UTC
Permalink
Post by Andres Morales
Gente, con toda la info que me tiraron logré hacer que la web se vea como
debe ser y que la url sea amigable, el problema ahora es que la url
amigable va creciendo a medida que hago clic en los items del menu
principal. Van unos ejemplos para que puedan darse una idea y ver si me
pueden entender y ayudar.
El menu principal tiene tabs con links de tipo <a
href="section/home/action/**index/">Home</a> <a
href="section/contact/action/**index/">Contact us</a> y asi...
Esto se traduce en index.php?section=home&action=**index por ejemplo y la
RewriteRule ^section/([a-zA-Z0-9]+)/**action/([a-zA-Z0-9]+)/$
index.php?section=$1&action=$2 [L]
Luego cuando yo llego a la pagina por primera vez todo se ve bien, hago
clic a uno de los tabs y todo sigue en orden, en la barra de navegacion
puedo ver
http://localhost/section/**contact/action/index/<http://localhost/section/contact/action/index/>
luego, hago clic en cualquier otro tab y la url se concatena el
/section/home/action/index/ al a url anterior, quedando algo como
http://localhost/section/**contact/action/index/section/**
services/action/index/<http://localhost/section/contact/action/index/section/services/action/index/>y
asi se va concatenando y creciendo a medida que voy haciendo clic en los
items del menu, saliendo el error 404 obviamente.
A que se puede estar debiendo esto? en que le estoy pifiando en la regla
del .htaccess?
Desde ya muchas gracias por la ayuda/referencia/critica/idea que puedan
darme.
Saludos.
Post by MAbeeTT
El 18 de mayo de 2012 10:52,
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&****variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y
el
modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la
barra
de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy
en
la
RewriteRule index-variable1-(.*)-****variable2-(.*)\.htm$
index.php?variable1=$1&****variable2=$2 [L]
RewriteRule index/variable1/(.*)/****variable2/(.*)/
index.php?variable1=$1&****variable2=$2 [R]
RewriteRule
^/variable1/([a-zA-Z0-9]+)/****variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&****variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)****$
index.php?variable1=$1&****variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la
pagina
de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por ejemplo, en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le
pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es
que lo
he probado asi como me lo comentas, pero me surge otro problema,
cuando
hago
clic en los items de menu la url se va como acumulando y se rompe
todo,
es
decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> |<a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos;
^^
porque la foto no está en site.com/bla/1/foto.jpg (ni su forma
reescrita por el módulo)
Rearmá tus refenrecias, y en todo caso reubicá las fotos y estilos.
Apretá f12 en chromium o ctrl+shift+i en firefox y andá viendo el
fuente, los quejidos del browser, etc.
hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Estemm... sigo pensando que lo mejor sería hacer el procesamiento por el
lado de php.
# Habilito la reescritura
RewriteEngine On
# Todo pasa por index.php
RewriteRule ^(.*)$ index.php?/$1 [L]
Y en este caso, como armas los links en los a tags?
Post by Andres Morales
y en index.php ponés las rutas a las que querés enviarlo (es decir, qué
controlador maneja cada una o si el mismo index.php maneja todo), con el
contenido de $_SERVER['REQUEST_URI'] podrías trabajarlo directamente contra
un array de URIs permitidas contra controladores que las manejen.
En realidad es así, en el index.php se define para donde va cada sección
dependiendo de la acción, todo pasa por ahí; pero no alcanzo a entender
lo que me decís, o sea, de como hacer el cambio en mi index.php.
Post by Andres Morales
De hecho, podés filtrar las URIs con expresiones regulares como quieras y
pasarle a tus controladores los datos de manera correcta.
Es solo una opinión.
Saludos!
Andrés
PD: Dentro de lo posible evitá el top_posting: es.wikipedia.org/wiki/Top-
posting
c***@lugmen.org.ar
2012-05-29 02:27:52 UTC
Permalink
Buenas,
Post by c***@lugmen.org.ar
Post by Andres Morales
Gente, con toda la info que me tiraron logré hacer que la web se vea como
debe ser y que la url sea amigable, el problema ahora es que la url
amigable va creciendo a medida que hago clic en los items del menu
principal. Van unos ejemplos para que puedan darse una idea y ver si me
pueden entender y ayudar.
El menu principal tiene tabs con links de tipo <a
href="section/home/action/**index/">Home</a> <a
href="section/contact/action/**index/">Contact us</a> y asi...
Esto se traduce en index.php?section=home&action=**index por ejemplo y la
RewriteRule ^section/([a-zA-Z0-9]+)/**action/([a-zA-Z0-9]+)/$
index.php?section=$1&action=$2 [L]
Luego cuando yo llego a la pagina por primera vez todo se ve bien, hago
clic a uno de los tabs y todo sigue en orden, en la barra de navegacion
puedo ver
http://localhost/section/**contact/action/index/<http://localhost/section/contact/action/index/>
luego, hago clic en cualquier otro tab y la url se concatena el
/section/home/action/index/ al a url anterior, quedando algo como
http://localhost/section/**contact/action/index/section/**
services/action/index/<http://localhost/section/contact/action/index/section/services/action/index/>y
asi se va concatenando y creciendo a medida que voy haciendo clic en los
items del menu, saliendo el error 404 obviamente.
A que se puede estar debiendo esto? en que le estoy pifiando en la regla
del .htaccess?
Desde ya muchas gracias por la ayuda/referencia/critica/idea que puedan
darme.
Saludos.
Post by MAbeeTT
El 18 de mayo de 2012 10:52,
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga direcciones
tales como index.php?variable1=dato1&****variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y
el
modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la
barra
de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy
en
la
RewriteRule index-variable1-(.*)-****variable2-(.*)\.htm$
index.php?variable1=$1&****variable2=$2 [L]
RewriteRule index/variable1/(.*)/****variable2/(.*)/
index.php?variable1=$1&****variable2=$2 [R]
RewriteRule
^/variable1/([a-zA-Z0-9]+)/****variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&****variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)****$
index.php?variable1=$1&****variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la
pagina
de
apache del mod_rewrite, no encuentro que puede estar fallando, si alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por
ejemplo,
en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le
pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es
que lo
he probado asi como me lo comentas, pero me surge otro problema,
cuando
hago
clic en los items de menu la url se va como acumulando y se rompe
todo,
es
decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> |<a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos;
^^
porque la foto no está en site.com/bla/1/foto.jpg (ni su forma
reescrita por el módulo)
Rearmá tus refenrecias, y en todo caso reubicá las fotos y estilos.
Apretá f12 en chromium o ctrl+shift+i en firefox y andá viendo el
fuente, los quejidos del browser, etc.
hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Estemm... sigo pensando que lo mejor sería hacer el procesamiento por el
lado de php.
# Habilito la reescritura
RewriteEngine On
# Todo pasa por index.php
RewriteRule ^(.*)$ index.php?/$1 [L]
Y en este caso, como armas los links en los a tags?
Estuve probando esto que me decís, meto esas lineas en el .htaccess, luego
los tags los armo como urls amigables, algo como
index.php/section/home/action/index/
Post by c***@lugmen.org.ar
Post by Andres Morales
y en index.php ponés las rutas a las que querés enviarlo (es decir, qué
controlador maneja cada una o si el mismo index.php maneja todo), con el
contenido de $_SERVER['REQUEST_URI'] podrías trabajarlo directamente contra
un array de URIs permitidas contra controladores que las manejen.
En realidad es así, en el index.php se define para donde va cada sección
dependiendo de la acción, todo pasa por ahí; pero no alcanzo a entender
lo que me decís, o sea, de como hacer el cambio en mi index.php.
En este punto cree una funcion getUrl(), la cual por medio de la funcion
parse_url() va generando un array de parametros de la url, en este caso
cada parametro va a ser lo que esta entremedio de la "/". Luego, imprimo
el array con print_r y hasta ahi todo joya, me muestra el array asociativo
con los valores section, home, action e index.
Pero aca esta el problema, si hago clic en otro tag del menu, el array
obviamente se agranda y en lugar de tener 4 elementos, pasa a tener 8, es
decir, section, home, action, index, section, contacto, action e index; y
en la barra de navegacion se ve que se vuelve a concatenar la url, es
decir, queda algo como
index.php/section/home/action/index/section/contacto/action/index/
Post by c***@lugmen.org.ar
Post by Andres Morales
De hecho, podés filtrar las URIs con expresiones regulares como quieras y
pasarle a tus controladores los datos de manera correcta.
Es solo una opinión.
Saludos!
Andrés
es.wikipedia.org/wiki/Top-
posting
que podra ser lo que me esta fallando?

muchas gracias de vuelta por la ayuda que puedan darme.

Un saludo.
Andres Morales
2012-05-29 12:47:31 UTC
Permalink
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
Post by Andres Morales
Gente, con toda la info que me tiraron logré hacer que la web se vea como
debe ser y que la url sea amigable, el problema ahora es que la url
amigable va creciendo a medida que hago clic en los items del menu
principal. Van unos ejemplos para que puedan darse una idea y ver si me
pueden entender y ayudar.
El menu principal tiene tabs con links de tipo <a
href="section/home/action/**index/">Home</a> <a
href="section/contact/action/**index/">Contact us</a> y asi...
Esto se traduce en index.php?section=home&action=**index por ejemplo y la
RewriteRule ^section/([a-zA-Z0-9]+)/**action/([a-zA-Z0-9]+)/$
index.php?section=$1&action=$2 [L]
Luego cuando yo llego a la pagina por primera vez todo se ve bien, hago
clic a uno de los tabs y todo sigue en orden, en la barra de navegacion
puedo ver
http://localhost/section/**contact/action/index/<
http://localhost/section/contact/action/index/>
Post by c***@lugmen.org.ar
Post by Andres Morales
luego, hago clic en cualquier otro tab y la url se concatena el
/section/home/action/index/ al a url anterior, quedando algo como
http://localhost/section/**contact/action/index/section/**
services/action/index/<
http://localhost/section/contact/action/index/section/services/action/index/
Post by c***@lugmen.org.ar
y
Post by Andres Morales
asi se va concatenando y creciendo a medida que voy haciendo clic en los
items del menu, saliendo el error 404 obviamente.
A que se puede estar debiendo esto? en que le estoy pifiando en la regla
del .htaccess?
Desde ya muchas gracias por la ayuda/referencia/critica/idea que puedan
darme.
Saludos.
Post by MAbeeTT
El 18 de mayo de 2012 10:52,
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga
direcciones
tales como index.php?variable1=dato1&****variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples y
el
modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en la
barra
de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y no doy
en
la
RewriteRule index-variable1-(.*)-****variable2-(.*)\.htm$
index.php?variable1=$1&****variable2=$2 [L]
RewriteRule index/variable1/(.*)/****variable2/(.*)/
index.php?variable1=$1&****variable2=$2 [R]
RewriteRule
^/variable1/([a-zA-Z0-9]+)/****variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&****variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)****$
index.php?variable1=$1&****variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna
traduccion.
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta la
pagina
de
apache del mod_rewrite, no encuentro que puede estar fallando, si
alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas 'search engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por
ejemplo,
en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda a
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea, le
pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te puedo
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa es
que lo
he probado asi como me lo comentas, pero me surge otro problema,
cuando
hago
clic en los items de menu la url se va como acumulando y se rompe
todo,
es
decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> |<a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/ pero el
sitio pierde fotos y estilos;
^^
porque la foto no está en site.com/bla/1/foto.jpg (ni su forma
reescrita por el módulo)
Rearmá tus refenrecias, y en todo caso reubicá las fotos y estilos.
Apretá f12 en chromium o ctrl+shift+i en firefox y andá viendo el
fuente, los quejidos del browser, etc.
hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Estemm... sigo pensando que lo mejor sería hacer el procesamiento por el
lado de php.
# Habilito la reescritura
RewriteEngine On
# Todo pasa por index.php
RewriteRule ^(.*)$ index.php?/$1 [L]
Y en este caso, como armas los links en los a tags?
Estuve probando esto que me decís, meto esas lineas en el .htaccess, luego
los tags los armo como urls amigables, algo como
index.php/section/home/action/index/
index.php/home/index

sin section, sin action, ya que "home" es section e "index" es action, o
sea, implícitamente estás diciendo que la estructura es del tipo:

index.php/<section>/<action>
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
Post by Andres Morales
y en index.php ponés las rutas a las que querés enviarlo (es decir, qué
controlador maneja cada una o si el mismo index.php maneja todo), con el
contenido de $_SERVER['REQUEST_URI'] podrías trabajarlo directamente contra
un array de URIs permitidas contra controladores que las manejen.
En realidad es así, en el index.php se define para donde va cada sección
dependiendo de la acción, todo pasa por ahí; pero no alcanzo a entender
lo que me decís, o sea, de como hacer el cambio en mi index.php.
En este punto cree una funcion getUrl(), la cual por medio de la funcion
parse_url() va generando un array de parametros de la url, en este caso
cada parametro va a ser lo que esta entremedio de la "/". Luego, imprimo
el array con print_r y hasta ahi todo joya, me muestra el array asociativo
con los valores section, home, action e index.
Pero aca esta el problema, si hago clic en otro tag del menu, el array
obviamente se agranda y en lugar de tener 4 elementos, pasa a tener 8, es
decir, section, home, action, index, section, contacto, action e index; y
en la barra de navegacion se ve que se vuelve a concatenar la url, es
decir, queda algo como
index.php/section/home/action/index/section/contacto/action/index/
Por casualidad, ¿los links son relativos? agregale a cada link la url
completa: http://www.ejemplo.com/section/action o la barra al comienzo
/section/action si los querés hacer sí o sí relativos, sino el navegador va
a intentar referirse a la posición actual como base y le va a agregar la
url que le pases en el link.
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
Post by Andres Morales
De hecho, podés filtrar las URIs con expresiones regulares como quieras y
pasarle a tus controladores los datos de manera correcta.
Es solo una opinión.
Saludos!
Andrés
es.wikipedia.org/wiki/Top-
posting
que podra ser lo que me esta fallando?
muchas gracias de vuelta por la ayuda que puedan darme.
Un saludo.
Espero te sirva.

Saludos.

Andrés
c***@lugmen.org.ar
2012-05-29 15:21:01 UTC
Permalink
Post by Andres Morales
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
Post by Andres Morales
Gente, con toda la info que me tiraron logré hacer que la web se vea como
debe ser y que la url sea amigable, el problema ahora es que la url
amigable va creciendo a medida que hago clic en los items del menu
principal. Van unos ejemplos para que puedan darse una idea y ver si
me
Post by c***@lugmen.org.ar
Post by Andres Morales
pueden entender y ayudar.
El menu principal tiene tabs con links de tipo <a
href="section/home/action/**index/">Home</a> <a
href="section/contact/action/**index/">Contact us</a> y asi...
Esto se traduce en index.php?section=home&action=**index por ejemplo
y
Post by c***@lugmen.org.ar
Post by Andres Morales
la
RewriteRule ^section/([a-zA-Z0-9]+)/**action/([a-zA-Z0-9]+)/$
index.php?section=$1&action=$2 [L]
Luego cuando yo llego a la pagina por primera vez todo se ve bien,
hago
Post by c***@lugmen.org.ar
Post by Andres Morales
clic a uno de los tabs y todo sigue en orden, en la barra de
navegacion
Post by c***@lugmen.org.ar
Post by Andres Morales
puedo ver
http://localhost/section/**contact/action/index/<
http://localhost/section/contact/action/index/>
Post by c***@lugmen.org.ar
Post by Andres Morales
luego, hago clic en cualquier otro tab y la url se concatena el
/section/home/action/index/ al a url anterior, quedando algo como
http://localhost/section/**contact/action/index/section/**
services/action/index/<
http://localhost/section/contact/action/index/section/services/action/index/
Post by c***@lugmen.org.ar
y
Post by Andres Morales
asi se va concatenando y creciendo a medida que voy haciendo clic en los
items del menu, saliendo el error 404 obviamente.
A que se puede estar debiendo esto? en que le estoy pifiando en la regla
del .htaccess?
Desde ya muchas gracias por la ayuda/referencia/critica/idea que
puedan
Post by c***@lugmen.org.ar
Post by Andres Morales
darme.
Saludos.
Post by MAbeeTT
El 18 de mayo de 2012 10:52,
Post by celodrake
Post by c***@lugmen.org.ar
Buenas,
Post by c***@lugmen.org.ar
estoy trabajando con una web programada en php, la cual carga
direcciones
tales como index.php?variable1=dato1&****variable2=dato2
he habilitado el mod_rewrite, he hecho algunas pruebas simples
y
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
Post by celodrake
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
el
modulo
[snip .htaccess]
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
luego toda direccion de tipo rewrite.php?link=2 se traduce en
la
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
Post by celodrake
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
barra
de
navegacion a link2.html sin problemas.
volviendo a mi caso, he probado infinidad de combinaciones y
no
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
Post by celodrake
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
doy
en
la
RewriteRule index-variable1-(.*)-****variable2-(.*)\.htm$
index.php?variable1=$1&****variable2=$2 [L]
RewriteRule index/variable1/(.*)/****variable2/(.*)/
index.php?variable1=$1&****variable2=$2 [R]
RewriteRule
^/variable1/([a-zA-Z0-9]+)/****variable2/([a-zA-Z0-9]+)$
index.php?variable1=$1&****variable2=$2 [PT]
RewriteRule ^variable1/(.+)/variable2/(.+)****$
index.php?variable1=$1&****variable2=$2 [PT]
no pasa nada, en la barra de navegacion no se observa ninguna
traduccion.
hasta probe con algo mas simple, parecido a la prueba del
RewriteRule ^lang/(.+).html$ index.php?lang=$1 [L]
tampoco, ni se mosquea la traduccion.
He googleado por doquier, he leido cuando tutorial hay, hasta
la
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
Post by celodrake
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
pagina
de
apache del mod_rewrite, no encuentro que puede estar fallando,
si
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
Post by celodrake
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
alguien
puede tirarme una luz estaria mas que agradecido.
Un saludo.
sitio.com/bla/2/
y que en realidad le estés pegando a
sitio.com/bla.php?id=2
Y se usa para que sea más 'search engine' frliendly.
Slds,
Si, eso es justamente lo que necesito, hacer la web mas
'search
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
Post by celodrake
Post by c***@lugmen.org.ar
engine'
friendly.
Entonces segun entiendo yo tendria que armar los links, por
ejemplo,
en
<a href="/bla/2/">Home</a>
luego cuando le das clic a este enlace el mod_rewrite te manda
a
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
Post by celodrake
bla.php?id=2 ?
en realidad, lo re-escribe a bla.php?id=2 para 'adentro' o sea,
le
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
pasa a
bla.php el id=2, aunque en la url el navegador siga mostrando la /bla/2/,
la verdad no me acuerdo la sintaxis (asique en esa parte no te
puedo
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
orientar), pero alguna vez lo había hecho...
Todo bien, la sintaxis es lo de menos, bah, creo jaja... la cosa
es
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
que lo
he probado asi como me lo comentas, pero me surge otro problema,
cuando
hago
clic en los items de menu la url se va como acumulando y se rompe
todo,
es
decir, las fotos ni css se cargan.
<a href="/bla/1/">Home</a> |<a href="/bla/2/">Contacto</a>
Cargo la web, hago clic en el prime link, se ve site.com/bla/1/
pero
Post by c***@lugmen.org.ar
Post by Andres Morales
Post by MAbeeTT
el
sitio pierde fotos y estilos;
^^
porque la foto no está en site.com/bla/1/foto.jpg (ni su forma
reescrita por el módulo)
Rearmá tus refenrecias, y en todo caso reubicá las fotos y estilos.
Apretá f12 en chromium o ctrl+shift+i en firefox y andá viendo el
fuente, los quejidos del browser, etc.
hago clic en el segundo link y en la barra
aparece ago como site.com/bla/bla/2/.
Bastante raro...
Estemm... sigo pensando que lo mejor sería hacer el procesamiento por
el
Post by c***@lugmen.org.ar
Post by Andres Morales
lado de php.
# Habilito la reescritura
RewriteEngine On
# Todo pasa por index.php
RewriteRule ^(.*)$ index.php?/$1 [L]
Y en este caso, como armas los links en los a tags?
Estuve probando esto que me decís, meto esas lineas en el .htaccess, luego
los tags los armo como urls amigables, algo como
index.php/section/home/action/index/
index.php/home/index
sin section, sin action, ya que "home" es section e "index" es action, o
index.php/<section>/<action>
Se me habia ocurrido simplificarlo asi que si, lo proble y esta bueno asi.
Post by Andres Morales
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
Post by Andres Morales
y en index.php ponés las rutas a las que querés enviarlo (es decir,
qué
Post by c***@lugmen.org.ar
Post by Andres Morales
controlador maneja cada una o si el mismo index.php maneja todo), con
el
Post by c***@lugmen.org.ar
Post by Andres Morales
contenido de $_SERVER['REQUEST_URI'] podrías trabajarlo directamente contra
un array de URIs permitidas contra controladores que las manejen.
En realidad es así, en el index.php se define para donde va cada
sección
Post by c***@lugmen.org.ar
dependiendo de la acción, todo pasa por ahí; pero no alcanzo a
entender
Post by c***@lugmen.org.ar
lo que me decís, o sea, de como hacer el cambio en mi index.php.
En este punto cree una funcion getUrl(), la cual por medio de la funcion
parse_url() va generando un array de parametros de la url, en este caso
cada parametro va a ser lo que esta entremedio de la "/". Luego, imprimo
el array con print_r y hasta ahi todo joya, me muestra el array asociativo
con los valores section, home, action e index.
Pero aca esta el problema, si hago clic en otro tag del menu, el array
obviamente se agranda y en lugar de tener 4 elementos, pasa a tener 8, es
decir, section, home, action, index, section, contacto, action e index; y
en la barra de navegacion se ve que se vuelve a concatenar la url, es
decir, queda algo como
index.php/section/home/action/index/section/contacto/action/index/
Por casualidad, ¿los links son relativos? agregale a cada link la url
completa: http://www.ejemplo.com/section/action o la barra al comienzo
/section/action si los querés hacer sí o sí relativos, sino el navegador va
a intentar referirse a la posición actual como base y le va a agregar la
url que le pases en el link.
Si, son relativos los links.
SOLUCIONADO, al fin, con la nueva regla del mod_rewrite me toma la "/"
inicial, ahora no concatena mas.
Post by Andres Morales
Post by c***@lugmen.org.ar
Post by c***@lugmen.org.ar
Post by Andres Morales
De hecho, podés filtrar las URIs con expresiones regulares como
quieras
Post by c***@lugmen.org.ar
Post by Andres Morales
y
pasarle a tus controladores los datos de manera correcta.
Es solo una opinión.
Saludos!
Andrés
es.wikipedia.org/wiki/Top-
posting
que podra ser lo que me esta fallando?
muchas gracias de vuelta por la ayuda que puedan darme.
Un saludo.
Espero te sirva.
Saludos.
Andrés
Muchas gracias Andres y al resto por la ayuda brindada.

Abrazo.

Loading...