sitio rewriterule reescritura redireccionar otra index htaccess dominio con carpeta .htaccess mod-rewrite

rewriterule - mod_rewrite y.htaccess-detener la reescritura si el script/archivo existe



reescritura htaccess (2)

Este es mi htaccess:

RewriteEngine On # Stop if it''s a request to an existing file. RewriteCond %{REQUEST_FILENAME} -f [NC,OR] RewriteCond %{REQUEST_FILENAME} -d [NC] RewriteRule .* - [L] # Redirect all requests to the index page RewriteRule ^([^/]) /index.php [L]

¡Ahora esto reenvía todo a mi script index.php! No se detiene si existe una secuencia de comandos. Alguien tiene alguna idea de por qué esto no está funcionando? He buscado en todas partes, pero realmente no entiendo mod_rewrite (¡tanto como pensaba!).

El problema ha surgido porque puse etiquetas <script> que apuntan a los archivos .js en mi directorio web que luego se reenvían al script index.php. La barra de herramientas del desarrollador web me dice esto. :) Y al hacer clic en los enlaces a los archivos js en la ventana de fuente de vista de firefox también se muestra el resultado de index.php.

gracias.


Esto se debe a que después de procesar una regla de reescritura, todo el proceso se reinicia con la nueva url. El procesamiento de una url puede ir a través de las reglas una y otra vez cada vez con la URL modificada, hasta que no haya más cambios (no se encuentran reglas de aplicación).

Necesitas esto:

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) /index.php [L]

No piense en las reglas como un programa, son reglas que pueden superponerse y deben ser lo más específicas posible con cada una.


Supongo que deberías agregar [O] después de la primera condición como esta:

RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule (.*) $1 [QSA,L]