Me di cuenta de que agregar un final / a index.php rompe css y javascript, lo cual se explicó aquí : qué sucede cuando pongo una barra oblicua después de una URL de php
Mi regla de reescritura toma cualquier cadena que esté después del dominio y una barra diagonal y la coloca en la variable GET q. Entonces foo.com/foo funciona bien y puedo acceder a /foo en la variable GET q. ¿Cómo obtengo cualquier recurso inexistente solicitado en la cadena de URL para que funcione de manera similar? Haga que foo.com/foo/ O foo.com/foo/foo, etc. redirija a index.php y no rompa css y javascript.
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.*)$ ./index.php?q=$1 [NC,L,QSA] </IfModule>Mi regla de reescritura funciona cuando se agrega una cadena de consulta a index.php o cuando /index.php se reemplaza con /foo pero rompe js y css cuando se agregan directorios adicionales como /foo/ o /foo/foo. ¿Cómo debe escribirse la regla para evitar esto?
Parece que usa enlaces relativos para incluir sus archivos javascript o css. Entonces, todo lo que tiene que hacer es hacer que las direcciones de sus archivos sean absolutas, como /js/search.js . Su regla de reescritura es correcta y no reenviará los archivos reales a su archivo index.php. Pero cuando dice src='js/search.js' , significa index.php/js/search.js para el navegador, y esa no es una dirección de archivo real.