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

Problema con regla de .htaccess

Estas en el tema de Problema con regla de .htaccess en el foro de Apache en Foros del Web. Buenas tardes a todos. Estoy probando varias reglas pero veo que uno de ellas no me va. RewriteEngine on RewriteRule ^articulos/(.*)/(.*)/(.*)\.html$ index.php?mod=articulos&id_fam=$1&id_subfam=$2&var _descripcion=$3 [L] RewriteRule ...
  #1 (permalink)  
Antiguo 14/06/2008, 07:30
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 20 años, 2 meses
Puntos: 1
Problema con regla de .htaccess

Buenas tardes a todos.

Estoy probando varias reglas pero veo que uno de ellas no me va.

RewriteEngine on

RewriteRule ^articulos/(.*)/(.*)/(.*)\.html$ index.php?mod=articulos&id_fam=$1&id_subfam=$2&var _descripcion=$3 [L]

RewriteRule ^articulos/(.*)/(.*)\.html$ index.php?mod=articulos&id_fam=$1&var_descripcion= $2 [L]

RewriteRule ^articulos_ver/(.*)/(.*)\.html$ index.php?mod=articulos_ver&id_arti=$1&var_descrip cion=$2 [L]

RewriteRule ^informacion/(.*)\.html$ index.php?mod=info&accion=$1 [L]

RewriteRule ^cesta/(.*)\.html$ index.php?mod=cesta&accion=$1 [L]

RewriteRule ^cesta/(.*)/(.*)\.html$ index.php?mod=$1&accion=$2&id_arti=$3 [L]

ErrorDocument 404 http://www.midominio.com/error404.php


Para la regla que esta en rojo(negrita) no me va.

Desde un archivo XXXX.php genero la siguiete url

Código PHP:
echo '<a href="cesta/agregar/'.$cod_arti.'.html">Agregar a cesta</a>'
en la url
me aparece:

http://www.midominio.com/cesta/agregar/1220.html

Y en el index lo recogo de esta manera

Código PHP:
echo "Modulo :"$_GET["mod"]."<br />";
echo 
"Accion :"$_GET["accion"]."<br />";
echo 
"Id Articulo :"$_GET["id_arti"]."<br />"
Lo normal es que lo reciba de esta manera:

Modulo : cesta
Accion : agregar
Id Articulo :1220

PERO LO RECIBO DE ESTA MANERA
Modulo : cesta
Accion : agregar/1220
Id Articulo :


Entonces no puedo evaluar el articulo porque me llega vacio ???

Donde puede estar el error.

He parado e iniciado los servicios del apache y nada, pero el resto de reglas me van correctamente.

¿Estaré haciendo algo incorrecto?

Gracias y saludos a todos
  #2 (permalink)  
Antiguo 14/06/2008, 08:35
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: Problema con regla de .htaccess

El problema es que está entrando por la regla anterior a la que está en rojo, ya que la URL=midominio.com/cesta/agregar/1220.html cumple ambas reglas y como la primera de ellas tiene la opcion [L], pues no sigue mirando reglas.
Yo creo que se soluciona simplemente intercambiando el orden de ambas reglas, pues la que está en rojo es un subconjunto de la otra. De hecho tambien te fallaría si las reglas 1 y 2 estuvieran intercambiadas de posición entre ellas.
__________________
Pop & Rock Bands
Pop Music Stars
  #3 (permalink)  
Antiguo 14/06/2008, 13:22
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: Problema con regla de .htaccess

Ok. amigo 00siete.

Esto quiere decir que toda la gente que haga uso de las reglas, tenemos que poner las reglas que tengan mayor cantidad de variables, en otras palabra de mayor a menor.


Saludos y gracias por extenderme esta ayuda.
  #4 (permalink)  
Antiguo 15/06/2008, 02:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: Problema con regla de .htaccess

Se corrigio el problema con mi sugerencia ?
__________________
Pop & Rock Bands
Pop Music Stars
  #5 (permalink)  
Antiguo 15/06/2008, 17:59
Avatar de Tombar  
Fecha de Ingreso: junio-2008
Ubicación: /home/tombar
Mensajes: 198
Antigüedad: 16 años, 5 meses
Puntos: 11
Respuesta: Problema con regla de .htaccess

el problema es lo que dice siete, pero viene de que usas una expresion regular espantosa, estas usando una bomba atomica para matar una mosquita :D

el poder de las expresiones regulares esta en saber usarlas correctamente.

en ves de usar (.*) deberias usar ([_A-Za-z0-9-]+) que equivale a decir letras de la A a las Z en mayusculas y minusculas y numeros de 0 a 9 todos los que sean. si utilizaras esa regexp en ves de la tuya no entrarias en el caso ese y si en el segudo como deberia ser.

Saludos y espero que te sirva lo que digo :P
  #6 (permalink)  
Antiguo 16/06/2008, 15:22
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: Problema con regla de .htaccess

Ok. tombar.

Gracias por tus consejos, ya los puse en practica.

Saludos.
  #7 (permalink)  
Antiguo 17/06/2008, 22:49
Avatar de Tombar  
Fecha de Ingreso: junio-2008
Ubicación: /home/tombar
Mensajes: 198
Antigüedad: 16 años, 5 meses
Puntos: 11
Respuesta: Problema con regla de .htaccess

No hay problema!

Las expresiones regulares son algo superpoderosos cuando uno sabe usarlas!
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 08:42.