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

Ayuda mod_rewrite

Estas en el tema de Ayuda mod_rewrite en el foro de Apache en Foros del Web. Hola, estoy generando mi .htaccess de la siguiente manera y no me funciona. RewriteRule ^(.*)$ localidades/?localidad=$1 Les explico lo que quiero hacer, a ver si ...
  #1 (permalink)  
Antiguo 13/09/2009, 15:40
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 5
Ayuda mod_rewrite

Hola, estoy generando mi .htaccess de la siguiente manera y no me funciona.

RewriteRule ^(.*)$ localidades/?localidad=$1

Les explico lo que quiero hacer, a ver si alguien me puede dar una mano.

tengo mi web con la siguiente estructura:
miweb.com.ar
miweb.com.ar/localidades/?localidad=algo

quiero que al escribir miweb.com.ar/algo me redireccione a
miweb.com.ar/localidades/?localidad=algo

tambien, que sucede si ese algo son dos palabras, por ejemplo:
miweb.com.ar/algo-algo1 me redireccione a
miweb.com.ar/localidades/?localidad=algo+algo1

Muchas Gracias
  #2 (permalink)  
Antiguo 13/09/2009, 16:03
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Ayuda mod_rewrite

Hola
Tal vez esto te sirva
Saludos
  #3 (permalink)  
Antiguo 13/09/2009, 16:11
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Ayuda mod_rewrite

mi htaccess es el siguiente:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^/([a-z]+).html$ /localidades/index.php?localidad=$1 [L]

pero cuando quiero acceder a la web
/valor.html me da error 404

404 Not Found
The server can not find the requested page:

miweb/valor.html (port 80)
  #4 (permalink)  
Antiguo 13/09/2009, 16:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Ayuda mod_rewrite

Tema trasladado desde PHP
  #5 (permalink)  
Antiguo 13/09/2009, 19:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Ayuda mod_rewrite

Te falto indicar localidades tambien en la parimera parte.
Cita:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^localidades/([a-z]+).html$ localidades/index.php?localidad=$1 [L]
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 13/09/2009, 19:45
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Ayuda mod_rewrite

Cita:
Iniciado por abimaelrc Ver Mensaje
Te falto indicar localidades tambien en la parimera parte.
El tema es que no quiero especificar la carpeta localidades, directamente quiero poner la localidad.
o sea miweb.com.ar/nombrelocalidad => miweb.com.ar/localidades/?localidad= nombrelocalidad
Igual de la manera que me indicastes no funciona.
Yo me fije en el php.ini q el modulo mod_rewrite esta cargado, tiene que haber algo mas??
Gracias!!
  #7 (permalink)  
Antiguo 13/09/2009, 20:25
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Ayuda mod_rewrite

Estuve investigando un poco en el foro y lo pude hacer andar, el problema ahora es el siguiente: tengo que especificar mi dominio, y no quiero, como debo poner?

la regla que tengo es la siguiente:
RewriteRule (.*)/$ midominio/localidades/index.php?localidad=$1 [L,QSA]

Que son las directivas [L,QSA]
aclaro que tengo varias reglas, ya que pueden venir, 1,2,3 o 4 palabras separadas por -, quiero q se ejecute la que corresponda.
Muchas Gracias!!
  #8 (permalink)  
Antiguo 13/09/2009, 20:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Ayuda mod_rewrite

No, estas usando mal el RewriteRule. Te sugiero leerte esto para que puedas lograr lo que quieres. http://www.zonaphp.com/optimizando-l...a-la-busqueda/

RewriteRule ^(.*).html/?$ localidades/index.php?localidad=$1 [L,QSA]

Aqui tienes informacion sobre L y QSA http://httpd.apache.org/docs/2.2/rew...ite_flags.html
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 14/09/2009, 16:07
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Ayuda mod_rewrite

hice todo esto, pero cuando presiono, me dice que la pagina no existe.
Que puede estar mal?
  #10 (permalink)  
Antiguo 14/09/2009, 16:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Ayuda mod_rewrite

Para estar seguro. Tu tienes el directorio de esta forma
Código PHP:
root
    
.htacces

    localidades
        index
.php 
Cuando llamas en la barra de direcciones escribes así
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 15/09/2009, 06:46
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Ayuda mod_rewrite

para hacerlo mas facil, puse todos mis php en el root, de manera de no tener carpetas y prestar a la confusion.
A ver si puedes ayudarme, ya que me estoy volviendo loco.
mi estructura es asi:

root
.htaccess
index.php
localidades.php

mi htaccess es:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^/([a-z]+)/$ /localidades.php?localidad=$1 [L]
RewriteRule ^/([a-z]+)-([a-z]+)/$ /localidades.php?localidad=$1+$2 [L]
RewriteRule ^/([a-z]+)-([a-z]+)-([a-z]+)/$ /localidades.php?localidad=$1+$2+$3 [L]
RewriteRule ^/([a-z]+)-([a-z]+)-([a-z]+)-([a-z]+)/$ /localidades.php?localidad=$1+$2+$3+$4 [L]

pero cuando quiero acceder a:
miweb.com.ar/algo-algo1/ o miweb.com.ar/algo/
me dice que no puede encontrar la pagina.
Esto segun mi regla deberia ser como poner:
miweb.com.ar/localidades.php?localidad=algo+algo1

Ayuda por favor., no se que mas hacer
  #12 (permalink)  
Antiguo 15/09/2009, 06:58
 
Fecha de Ingreso: septiembre-2009
Mensajes: 124
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Ayuda mod_rewrite

Lucas, te recomiendo que lo hagas de esta forma:

Options +FollowSymLinks
RewriteEngine on
Rewriterule ^(*.)\.html/$ localidades.php?localidad=$1

Contame que paso.

Saludos!
  #13 (permalink)  
Antiguo 15/09/2009, 07:00
 
Fecha de Ingreso: septiembre-2009
Mensajes: 124
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Ayuda mod_rewrite

Ah! Y otra cosita que me olvide.

Si no llega a funcionar, fijate que este activado el mod_rewrite.

Recorda que si realizas esa configuracion, tenes que reiniciar el servidor.

Seguramente ya lo tenias presente a eso, pero bueno, no esta mal recodarlo.

Saludos!
  #14 (permalink)  
Antiguo 15/09/2009, 07:37
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Ayuda mod_rewrite

ya esta queriendo.
puse la siguinte regla:
RewriteRule ^([^/]+)/$ localidades.php?localidad=$1
ya que en vez de html lo quiero poner como carpeta.
Ahora la siguiente duda que me esta quedando, como hago si mi parametro se separa por el signo +.
ejemplo, quiero llamar a miweb.com.ar/localidades.php?localidad=parte1+parte2

yo puse esto:
RewriteRule ^([a-z]+)-([a-z]+)/$ localidades.php?localidad=$1+$2
pero no le gusto. si en mi direccion escribo miweb.com.ar/parte+parte2/ anda, pero quiero dividirlo por -

y la segunda duda es:
una vez que me funciona esto, me queda miweb.com.ar/valor/
ahora quiero acceder a otra pagina que es propiedades y /valor/ seria la zona a la cual pertenece, se puede especificar en el htaccess cual va a ser la carpeta anterior, o sea, que cuando sea algo/prop1.html me redirija a propiedades.php?prop=$1

Muchas gracias por su tiempo a todos!!
  #15 (permalink)  
Antiguo 16/09/2009, 02:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Ayuda mod_rewrite

El simbolo de + en una direccion se usa como espacio. ¿Que tu quieres hacer con el +? Y en las expresiones regulares se usa para indicar que quieres el resultado de 1 o más de lo que estas pidiendo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 16/09/2009, 07:28
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Ayuda mod_rewrite

Ya lo pude terminar, mi htacces si a alguien le interesa quedo asi:

ErrorDocument 404 /404.php
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)/$ localidades.php?localidad=$1+$2+$3+$4 [L]
RewriteRule ^([^/]+)-([^/]+)-([^/]+)/$ localidades.php?localidad=$1+$2+$3 [L]
RewriteRule ^([^/]+)-([^/]+)/$ localidades.php?localidad=$1+$2 [L]
RewriteRule ^([^/]+)/$ localidades.php?localidad=$1 [L]
RewriteRule ^([^/]+)/propiedad-([0-9]+).html$ propiedades.php?propiedad=$2 [L]

Ahora una consulta mas, para que mi web sea lo mismo cuando es con www y sin www tengo que hacer un redirect 301?
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 21:05.