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

Modulo Rewrite dos condiciones y un SINO

Estas en el tema de Modulo Rewrite dos condiciones y un SINO en el foro de Apache en Foros del Web. Saludos a todos, Les pido una pequeña ayuda, ya que estoy medio nuevo con estas rewrite tules tan complejas Quiero convertir todas la URL amigables ...
  #1 (permalink)  
Antiguo 22/03/2009, 17:26
 
Fecha de Ingreso: junio-2007
Ubicación: Barranquilla
Mensajes: 24
Antigüedad: 16 años, 11 meses
Puntos: 0
Modulo Rewrite dos condiciones y un SINO

Saludos a todos,

Les pido una pequeña ayuda, ya que estoy medio nuevo con estas rewrite tules tan complejas

Quiero convertir todas la URL amigables asi que todas las peticiones que no tienen slash se los agrego en el primer y segundo nivel

Código:
RewriteRule ^([_0-9a-z-]+)$ /$1/ [R]
RewriteRule ^([_0-9a-z-]+)/([_0-9a-z-]+)$ /$1/$2/ [R]
En mi sitio tengo archivos y directorios como
Código:
acerca-de.php
contacto.php
anuncios/
Como todas las direcciones que llegan terminan en slash yo pregunto si no es directorio debe ser un archivo asi que

Código:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([_0-9a-z-]+)/$ /$1.php [L]
por ejemplo misitio.com/acerca-de/.

Que pasa si es misitio.com/anuncios/, nada ya que no hay ninguna condicion para el y no tomara la primera que tiene la condicion SI NO ES DIRECTORIO

El problema viene cuando no es ninguno de los dos si no es un archivo ni un directorio, por ejemplo misitio.com/noticias/ y quiero invocar la direccion index.php?f=noticias con:

Código:
^([_0-9a-z-]+)/$ /index.php=f=$1 [L]
Pero no funciona al paracer el [L] de la primera condicion no frena al coincidir, les anexo el codigo completo

Gracias!!!

Código:
Options +FollowSymLinks 
RewriteEngine on 

RewriteRule ^([_0-9a-z-]+)$ /$1/ [R]
RewriteRule ^([_0-9a-z-]+)/([_0-9a-z-]+)$ /$1/$2/ [R]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([_0-9a-z-]+)/$ /$1.php [L]
RewriteRule ^([_0-9a-z-]+)/([_0-9a-z-]+)/$ /$1/$2.php [L]

RewriteRule ^([_0-9a-z-]+)/$ /index.php=filter=$1 [L]
Gracias por cualquier ayuda
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 04:30.