2012-06-10 73 views
0

我遇到了一個錯誤,我不確定它的來源。我使用mod_rewrite以下:mod_rewrite和PHP的錯誤?

RewriteRule ^stuff$ index.php?page=stuff [L] 

,它工作得很好,但是當我使用

RewriteRule ^(.+?)$ index.php?page=$1 [L] 

CSS不再應用到頁面和代碼似乎並沒有讀GET請求。

有人可以詳細說明爲什麼會發生這種情況嗎?

回答

4

添加重寫狀態時不rewite如果文件存在&使用QSA標誌允許附加參數:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] 
1

由於您的查詢字符串已被轉換成一個類似目錄的結構,阿帕奇將檢查該目錄如果你沒有使用任何路徑披露。

所以,如果你是包括CSS文件,像這樣: <link href="skins/style.css">

你需要披露完整webpath到文件:

<link href="http://site.com/skins/style.css">` 

而且,在你的CSS所有圖片您需要執行相同的操作,包括完整的Web路徑以避免將來重寫時出現問題。