2012-04-23 302 views
0
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteCond %{REQUEST_URI} !(.*)\.(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC] 
RewriteRule ^(.*)$ index.php?path=$1 [QSA,L] 

這的.htaccess重定向一切index.php?path=SOMETHING在那裏我可以把它撿起來(SOMETHING路徑),並顯示相應的內容(的意見)。htaccess的 - 重寫URL包括CSS和JS

問題是與包括.css/.js文件。

如果我使用www.website.com/something一切正常(css路徑就像/css/style.css,它在www.website.com/css/style.css搜索)。但如果我使用www.website.com/something/2所有內容都會崩潰,因爲它正在搜索www.website.com/something/css/style.css文件夾。

如何將root(?)每次設置爲www.website.com(無論路徑是什麼)?所以我仍應該訪問我的'路徑'變量,但包括我的文件時,一切都應該指向網站根,而不是/some/...路徑。

+0

你可以嘗試澄清一點,你如何包括你的CSS和JS文件?此外,如果CSS是一個文件,獨立於給定的網址,那麼爲什麼要使它動態? – Honoki 2012-04-23 14:40:05

回答

2

問題在於如何編寫指向css/js/image文件的鏈接。

而是包括使用相對URL到當前頁面的CSS/JS /圖片:

href="css/style.css" 

你應該使用相對URL根(通知領先斜線):

href="/css/style.css" 

或使用絕對URL(這將包括域名 - 更不優先的方法)。

這是設計網站(html部分)時,當網站使用Nice網址/ URL重寫時的典型錯誤。這是 - 現在,重寫引擎破壞了URL--它是瀏覽器,首先將它們發送(/something/css/style.css)。

+0

它沒有和我一起工作 – 2012-11-27 09:11:59