Tengo un script que hace la búsqueda y quiero que los resultados también sean accesibles con la consulta
mysite.com/searchfor/"myword"
Agregué las siguientes líneas a .htaccess:
RewriteEngine on RewriteRule ^/?searchfor/(.*)$ search.php?search=$1 [L]
Funciona (la página se está cargando), pero cada recurso vinculado (css / js) no se pudo cargar con el próximo error:
Resource interpreted as Stylesheet but transferred with MIME type text/html Resource interpreted as Script but transferred with MIME type text/html:
Estas líneas se refieren a mysite.com/searchfor/theme.css, pero está mal, ya que el enlace derecho al css es mysite.com/theme.css.
Sospecho que RewriteEngine está dando un camino equivocado para cargar estilos y scripts lo que falló. ¿Cómo resolver esto?
Pruebe esta regla:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\.(?:jpe?g|gif|bmp|png|tiff|css|js)$ [NC] RewriteRule ^/?searchfor/(.+)$ search.php?search=$1 [L]
Sospecho que RewriteEngine está dando un camino equivocado para cargar estilos y scripts lo que falló.
No el RewriteEngine está dando las rutas equivocadas, tu HTML sí lo está.
Si refiere sus scripts y hojas de estilo en relación con la ruta que el cliente ha solicitado, entonces, por supuesto, hará la diferencia si el cliente solicitó example.com/foo
o example.com/searchfor/bar
– ya que las rutas relativas se resuelven en relación con el ubicación del documento actual.
¿Cómo resolver esto?
La forma más fácil es hacer referencia a recursos externos relativos al dominio, comenzando con una barra diagonal: en lugar de script.js
usa /script.js
, le dice al cliente que debe completar esta ruta solo con el dominio.