Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: alex86sm en 29 Octubre 2015, 16:03 pm



Título: htacces error cuando existe carpeta
Publicado por: alex86sm en 29 Octubre 2015, 16:03 pm
Hola!. tengo una duda que me da vueltas todo el dia, estoy usando htacces para las url amigables, y uso esto.

Código
  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on
  3. RewriteBase /
  4. RewriteRule ^\/?(.+)\.(php|htm|html|PHP|HTM|HTML)$ index.php?QueryStringWeb=$1&UrlStringWeb=%{REQUEST_URI} [QSA,L]
  5. RewriteRule ^([^.]*)$ index.php?QueryStringWeb=$1&UrlStringWeb=%{REQUEST_URI} [QSA,L]
  6. </IfModule>


el punto esta en que si la url dice

Código:
.com/hola

me reconoce normal y reconoce al index.php.

pero si existe la carpeta dice:

Código:
.com/js

lo cambia a

Código:
.com/js/?QueryStringWeb=js&UrlStringWeb=/js

y reconoce el index.php que esta bien pero no entiendo porque también muestra los parámetros get en la url del navegador.

alguna idea de que puede ser???...

Mod: Obligatorio el uso de etiquetas GeSHi.


Título: Re: htacces error cuando existe carpeta
Publicado por: MinusFour en 29 Octubre 2015, 17:04 pm
¿Quieres ocultar el query string o no quieres que se ejecute la regla si el directorio existe?

Lo primero creo que.. ¿no debería pasar? QSA debería ser interno y no deberia forzar una redireccion, por lo que tu navegador no tiene porque cambiar la URL. Lo segundo es simplemente agregar un RewriteCond.


Título: Re: htacces error cuando existe carpeta
Publicado por: alex86sm en 29 Octubre 2015, 19:49 pm
¿Quieres ocultar el query string o no quieres que se ejecute la regla si el directorio existe?

Lo primero creo que.. ¿no debería pasar? QSA debería ser interno y no deberia forzar una redireccion, por lo que tu navegador no tiene porque cambiar la URL. Lo segundo es simplemente agregar un RewriteCond.
no quiero que se muestre el query string, por alguna razon cuando ingreso a una ruta y existe la carpeta, automaticamente me lo agrega...


Título: Re: htacces error cuando existe carpeta
Publicado por: MinusFour en 29 Octubre 2015, 20:20 pm
no quiero que se muestre el query string, por alguna razon cuando ingreso a una ruta y existe la carpeta, automaticamente me lo agrega...

Ninguna de las dos reglas que has puesto debe redirigirte de:

Código:
.com/js

a:

Código:
.com/js/?QueryStringWeb=js&UrlStringWeb=/js

Las he probado yo, incluso para verificar y no me han redirigido a ningún lugar. Debe ser otra regla o tu script está haciendo la redireción.