Mod-Rewrite
Lighttpd:為 Drupal 啟用模組重寫
我正在為 Ubuntu 10 上的 drupal 配置 lighttpd (1.4.26),並且我對重寫模組有一些問題。
到目前為止,我已經在 lighttpd.conf 中啟用了重寫模組
然後,我在配置文件中添加了以下幾行(如此處寫的http://drupal.org/node/43782)。
url.rewrite-final = ( "^/system/test/(.*)$" => "/index.php?q=system/test/$1", "^/([^.?]*)\?(.*)$" => "/index.php?q=$1&$2", "^/([^.?]*)$" => "/index.php?q=$1", "^/rss.xml" => "/index.php?q=rss.xml" )
但我得到的是我伺服器上任何 URL 的“找不到頁面”
我還有另一個問題:是否有帶有 lighttpd 的目錄級配置文件,或者我應該專門使用 lighttpd.conf 嗎?
謝謝
更新 我發現我可以使用 LUA 腳本,但恐怕我的 lighttpd 版本沒有使用 mod_magnet 模組編譯,因為我在配置文件的模組列表中沒有看到它。
$HTTP["host"] == "host.com" { server.document-root = "/path/to/drupal/site/" dir-listing.activate = "disable" magnet.attract-physical-path-to = ("/etc/lighttpd/drupal.lua") }
我只是在我的網路伺服器上設置了drupal,只是為了你;)這是一個帶有vhost的範例配置片段:
$HTTP["host"] =~ "drupal\.mysite\.com$" { server.document-root = "/var/www/drupal/" url.rewrite-final = ( "^/system/test/(.*)$" => "/index.php?q=system/test/$1", "^/([^.?]*)\?(.*)$" => "/index.php?q=$1&$2", "^/([^.?]*)$" => "/index.php?q=$1", "^/rss.xml" => "/index.php?q=rss.xml" ) }
那行得通(我可以在drupal中啟用Clean URLs並且它似乎有效),我不知道您的配置實際上看起來如何,但也許首先嘗試調整我的配置。你必須把它放在你的 lighttpd.conf 的末尾 LUA 的東西也應該工作,條條大路通羅馬 ;) 但我認為最好保持簡單,不要啟用這麼多模組。我敢肯定,將來你會比磁鐵更需要重寫模組。