2011-01-31 64 views
1

我有Lighttpd重寫和靜態文件的問題。Lighttpd重寫

這裏是我的改寫語法:

url.rewrite = (
    "^/(.*)\.(php|css|js|jpg|png)$" => "$0", 
    "^/(.+)$" => "/router.php?url=$1" 
) 

所有的.css和.js文件加載得很好,但沒有圖像加載。我試圖檢查文件是從/圖像提供的,但沒有解決問題。我檢查了訪問日誌,所有css和js文件都有200個狀態,但所有圖像文件都有404個。路徑是正確的。

有沒有人有一個想法,爲什麼.css和.js文件可以正確加載,但圖像沒有。

+0

如果您禁用重寫,圖像是否工作?請原諒,如果這是一個愚蠢的問題,但這是我第一次嘗試。如果圖像在禁用重寫後仍然無法工作,那麼您可能在Lighttpd以外的級別上出現問題 - 例如文件系統權限。 (請記住,您必須在更改配置文件後重新啓動Lighty守護程序。) – 2011-02-06 08:06:26

回答

0

不得不試圖刪除前導「/」,或使其可選這樣的:

url.rewrite = (
    "^/?(.*)\.(php|css|js|jpg|png)$" => "$0", 
    "^/?(.+)$" => "/router.php?url=$1" 
) 

此外,你應該使用url.rewrite-once並可能 - 如果你的lighttpd是> 1.4.24 - 使用url.rewrite-if-not-file,使用CSS,JS和圖像等現有文件使生活變得更加輕鬆。

Lighty-Docs on mod_rewrite

0

url.rewrite-if-not-file在我vBulletin非常有幫助 - vbseo的lighttpd重寫問題。另外我認爲它加快了比較過程,同時重寫模塊在lighttpd中運行。

+0

任何人都確認這確實「加快了比較過程」? – electblake 2013-09-15 20:40:39