Lighttpd:为 Drupal 启用模块重写

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")
}

答案1

我刚刚在我的网络服务器上为您设置了 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 URL,它似乎有效),我不知道您的配置实际上是什么样子,但也许首先尝试调整我的配置。您必须将其放在 lighttpd.conf 的末尾。LUA 的东西也应该有效,条条大路通罗马 ;) 但我认为最好保持简单,不要启用那么多模块。我相信您将来会比 magnet 更需要重写模块。

答案2

我假设您已经删除了“#”。您使用的是哪个版本的 lighttpd?您必须在 lighttpd.conf 中添加所有内容,当然您可以在 lighttpd.conf 中包含配置文件(Debian 使用 lighty-tools:lighty-enable-mod 等执行此操作),但我建议您留在 /etc/lighttpd/ 中。

答案3

以防有人在考虑路亚系统脚本选项,您需要安装mod_magnet在 Debian/Ubuntu 发行版上分别使用。相应的包名为lighttpd-mod-磁铁。因此,您需要在命令行上执行此操作。

apt-get install lighttpd-mod-magnet

相关内容