Mod-Rewrite

Lighttpd:為 Drupal 啟用模組重寫

  • August 19, 2015

我正在為 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 的東西也應該工作,條條大路通羅馬 ;) 但我認為最好保持簡單,不要啟用這麼多模組。我敢肯定,將來你會比磁鐵更需要重寫模組。

引用自:https://serverfault.com/questions/199054