Ver Mensaje Individual
  #12 (permalink)  
Antiguo 17/03/2013, 06:31
berserko
 
Fecha de Ingreso: abril-2008
Mensajes: 24
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: .htaccess urls amigables y css

Cita:
Iniciado por Bonez Ver Mensaje
Podrías ser más específico con tus reglas de reescritura para que realmente sólo afecten a lo que necesites, o al menos no ser tan generoso y sólo aplicar (.+). Como ya te dije, un buen punto, además de simple y comprensivo, es agrupar opciones —con (x|x|x)— y así reduces notablemente las reglas y lo ajustas a lo que necesitas.
Ocurre que en realidad lo intente como dices... te explico

1- Respecto a lo del -? (esto me resulta irrelevante, no tengo problemas con que el / al final sea obligatorio)


RewriteRule ^(.+)/(.+)/$ index.php?dir=$1&tema=$2 cuando no lo tiene hace obligatorio el / y devuelve: dir=loquehayen$1 tema=loquehayen$2

RewriteRule ^(.+)/(.+)/?$ index.php?dir=$1&tema=$2 cuando lo tiene hace opcional el / y si lo tiene devuelve: dir=loquehayen$1 tema=loquehayen$2/ es decir lo adjunta al valor de $2 y así tampoco sirve...



2 - El verdadero problema, como te dije antes es que algunos enlaces simplemente no funcionan mientras que otros si
Cita:
Iniciado por berserko Ver Mensaje
De hecho tengo problemas con algunos enlaces que en el servidor local funcionan todos a la perfección mientras que en la web algunos no funcionan para nada, ambos tanto los que funcionan como los que no funcionan trabajan con la misma regla y uso direcciones absolutas href="midominio.com/parametro1/parametro2/" la única diferencia es que algunos(los que si funcionan) vienen de una base de datos...

Si uso el formato de variables href="midominio.com/?var1=parametro1&var2=parametro2" entonces si funcionan todos perfectamente
Así que agrupe como dices, antes estaban así y solo funcionaban los enlaces que vienen de la base de datos:

RewriteRule ^(.+)/(.+)/(.+)/$ index.php/?dir=$1&tema=$2&tp=$3 <--- con 3 var solo para enlaces de la bd siempre funciona
RewriteRule ^(.+)/(.+)/$ index.php/?dir=$1&tema=$2 <-- con 2 var para enlaces normales y de bd solo funcionan los de bd que son exactamente iguales a los otros...

y ahora así:

RewriteRule ^dirbd/(.+)/(.+)/$ index.php/?dir=dirbd&tema=$1&tp=$2 para los enlaces de la bd que funcionaban y siguen funcionando
RewriteRule ^dirbd/(.+)/$ index.php/?dir=dir&tema=$1 direcciona al index con sus respectivas variables

RewriteRule ^(dir1|dir2|dir3)/(.+)/$ prueba.php/?dir=$1&tema=$2 para los demás enlaces que no funcionaban y siguen igual, envía error 404

Not Found

The requested URL /dir1/param1/ was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


En el servidor local funciona a la perfeccion con ambos grupos de reglas