htacces error cuando existe carpeta

Iniciado por alex86sm, 29 Octubre 2015, 16:03 PM

0 Miembros y 1 Visitante están viendo este tema.

alex86sm

Hola!. tengo una duda que me da vueltas todo el dia, estoy usando htacces para las url amigables, y uso esto.

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



el punto esta en que si la url dice

.com/hola

me reconoce normal y reconoce al index.php.

pero si existe la carpeta dice:

.com/js

lo cambia a

.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.

MinusFour

¿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.

alex86sm

Cita de: 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.
no quiero que se muestre el query string, por alguna razon cuando ingreso a una ruta y existe la carpeta, automaticamente me lo agrega...

MinusFour

Cita de: alex86sm en 29 Octubre 2015, 19:49 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:


.com/js


a:


.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.