我正在 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