2014-01-24 33 views
1

我有一個腳本,使搜索和我想要的結果也與查詢訪問重寫引擎的.htaccess MIME類型錯誤

mysite.com/searchfor/"myword" 

我加入下一行爲.htaccess:

RewriteEngine on 
RewriteRule ^/?searchfor/(.*)$ search.php?search=$1 [L] 

它(頁面正在加載),但每個鏈接的資源(css/js)都無法加載下一個錯誤:

Resource interpreted as Stylesheet but transferred with MIME type text/html 
Resource interpreted as Script but transferred with MIME type text/html: 

這些行ref呃到mysite.com/searchfor/theme.css,但它是錯誤的,因爲正確的鏈接到css是mysite.com/theme.css。

我懷疑RewriteEngine給出加載樣式和腳本的路徑失敗。 如何解決這個問題?

回答

1

試試這個規則:

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] 
+0

它沒有幫助 – Tigran

+0

如果您嘗試在瀏覽器中使用其URL打開只是css文件,會發生什麼情況? – anubhava

+0

它打開我的搜索頁面作爲搜索的CSS名稱。例如,打開theme.css將搜索「theme.css」 – Tigran

0

I suspect RewriteEngine giving wrong path to load styles and scripts what failed it.

不是RewriteEngine敘述是給了錯誤的路徑 - 你的HTML是。

如果您引用您的腳本和樣式表相對於客戶端請求的路徑,那麼它當然會影響客戶端請求example.com/foo還是example.com/searchfor/bar - 因爲相對路徑是根據當前文檔的位置來解析的。

How to solve this?

最簡單的方法是引用相對於域的外部資源,以斜線開始 - 而不是script.js您使用/script.js,告訴他有完成只用域這條路的客戶端。

+0

是否可以創建名爲searchfor的文件夾,並通過.htaccess引用上述所有請求? – Tigran