Hola, tengo un archivo htaccess que debería reescribir todo en index.php pero excepto los archivos js, css, png, y este htaccess debería cargar archivos js, css, png pero no lo carga

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule ^([^/]+)/([^/]+) index.php?checkPage=$1&check=$2  [L,QSA]
RewriteRule ^([^/]+)/? index.php?checkPage=$1 [L,QSA]
0
MaksStonka 21 jul. 2020 a las 01:30

1 respuesta

La mejor respuesta

Las directivas RewriteCond solo se aplican a la primera directiva RewriteRule. Entonces, su segunda regla no tiene condiciones anteriores, por lo que naturalmente también reescribirá sus archivos .js.

Sin embargo, también está comprobando que la solicitud no sea /index.html, pero está reescribiendo a index.php. Es de suponer que estos deberían ser los mismos. Aunque probablemente podría eliminar esta comprobación por completo haciendo que su expresión regular sea más específica.

Pruebe lo siguiente en su lugar:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule ^([^/]+)/([^/]+) index.php?checkPage=$1&check=$2  [L,QSA]

RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule ^([^/]+)/? index.php?checkPage=$1 [L,QSA]

Sin embargo, ambas condiciones de tesis probablemente podrían eliminarse simplemente haciendo que su expresión regular sea más específica, dependiendo del formato de sus URL (que no ha indicado).

1
MrWhite 21 jul. 2020 a las 00:24