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

Evitar las URL amigables en algunas carpetas

Estas en el tema de Evitar las URL amigables en algunas carpetas en el foro de Apache en Foros del Web. Tengo el siguiente código @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Apache: Ver original RewriteRule ^([a-zA-Z0- 9 _-]+)/$ index.php?menu=$1 RewriteRule ^([a-zA-Z0- 9 _-]+)$  $1/   [L,R] Cuando tengo una ...
  #1 (permalink)  
Antiguo 03/02/2013, 13:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 233
Antigüedad: 13 años, 10 meses
Puntos: 4
Evitar las URL amigables en algunas carpetas

Tengo el siguiente código

Código Apache:
Ver original
  1. RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?menu=$1
  2. RewriteRule ^([a-zA-Z0-9_-]+)$  $1/   [L,R]

Cuando tengo una URL así

www.midominio.com/index.php?menu=ejemplo
también puedo entrar así

www.midominio.com/ejemplo/

Hasta ahí todo bien

Pero cuando creo una carpeta en mi FTP llamada "articulos" e intento ingresar

www.midominio.com/articulos/

no puedo porque claro, esto RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?menu=$1 me lo impide...

Hay alguna manera de hacer que ciertas "carpetas" no puedan ser afectadas por los códigos de htaccess?... gracias

Última edición por tonydx16; 03/02/2013 a las 13:09
  #2 (permalink)  
Antiguo 04/02/2013, 10:01
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Evitar las URL amigables en algunas carpetas

En primer lugar tu regla no está bien, debe ser

Código Apache:
Ver original
  1. RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?menu=$1 [L]

Ahora, la primera parte de la regla es un expresión, cualquier cosa que pongas pasa como parámetro, ejemplo, articulo, loquesea...
Lo que necesitás es indicar que la regla no se cumpla si es un a carpeta ú archivo existente. por lo que debería ser
Código Apache:
Ver original
  1. # si no es un directorio real  existente
  2. RewriteCond %{SCRIPT_FILENAME} !-d  
  3. # si no es un archivo real existente
  4. RewriteCond %{SCRIPT_FILENAME} !-f
  5. # ejecutamos
  6. RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?menu=$1 [L]

Ejemplo

http://mr1.emprear.com

mirá el primer link Novedades-Ofertas

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: amigables, carpetas, htaccess, index, php, rewriterule, url
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 21:00.