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

No redirecciona .htaccess

Estas en el tema de No redirecciona .htaccess en el foro de Apache en Foros del Web. Hola a todos: Lo que estoy intentando hacer es crear una web con url amigables y se como transformar url extensas a amigables, pero el ...
  #1 (permalink)  
Antiguo 27/02/2009, 02:55
 
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 9 meses
Puntos: 0
No redirecciona .htaccess

Hola a todos:
Lo que estoy intentando hacer es crear una web con url amigables y se como transformar url extensas a amigables, pero el problema lo tengo cuando intento pasar variables por GET, ya que no me redirecciona al sitio deseado, sino que me vuelve al inicio de la página. Este es mi .htaccess:
Código PHP:
Options FollowSymLinks
RewriteEngine On

Rewriterule 
^index/mod/(.*)$                    index.php?mod=$1
Rewriterule 
^index/mod/(.*)/(.*),(.*)$            index.php?mod=$1&$2=$
La primera línea me la ejecuta correctamente, si yo pongo esto me redireccionar perfectamente
Código HTML:
<a href="index/mod/empresa">Empresa</a> 
Pero si por el contrario, yo pongo esto, me redirecciona al inicio, no me hace caso:
Código HTML:
<a href="index/mod/ficha/titulo,titulo-de-prueba">Ficha</a> 
Probé a comentar la primera linea y a escribir manualmente la URL amigable en la barra de direcciones de un navegador, y funciona bien, pero el problema es que me deja de funcionar el primer enlace.
Alguien podría ayudarme por favor????
  #2 (permalink)  
Antiguo 27/02/2009, 03:17
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 20 años
Puntos: 48
Respuesta: No redirecciona .htaccess

Cambia el orden y añade el flag [L] al final de las reglas.

El problema esta en que mod_rewrite compara la url entrante con las reglas segun aparecen, y en caso de coincidir alguna realiza la transformacion y sigue con la siguiente regla. El patron (.*) es cualquier cadena, y cualquier cadena incluye (.*)/(.*),(.*), por eso coincide con la primera regla y la reescribe, llega a la segunda regla con la url reescrita.

Por eso siempre el orden debe ser primero las reglas mas especificas, y las generales al final. Y usar el flag [L] para que deje de comprobar las reglas siguientes.
  #3 (permalink)  
Antiguo 27/02/2009, 03:29
 
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: No redirecciona .htaccess

Hola de nuevo:
Probé como me dijiste y ahora me funciona correctamente, muchísimas gracias
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 01:12.