Cita:
Iniciado por Bonez 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 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