轻量级服务器Lighttpd:如何将子路径指向不同的文档根目录

9

我有一个指向文档根目录/var/www的lighttpd设置。然而,我希望URLother/指向/some/other/dir。我使用以下配置来实现:

$HTTP["url"] =~ "^/other($|/)" {
  server.document-root = "/some/other/dir"
}

然而,如果我访问'http://myhost/other',lighttpd会尝试访问'/some/other/dir/other'而不仅仅是'/some/other/dir'。有没有可能在保留任何进一步的URL段的情况下剥离'/other'?因此,例如,'http://myhost/other/sub/foo.txt'应该指向'/some/other/dir/sub/foo.txt'。
1个回答

13

不要试图设置 server.document-root,你可以使用 mod_alias 来实现这一点:

server.modules = ( ..., "mod_alias" )

...

alias.url = ( "/other/" => "/some/other/dir/" )

这将创建一个别名,使得所有对/other/和该文件夹内资源的请求都将被重定向到文件系统上的/some/other/dir/,而对/other/直接发出的请求将直接指向/some/other/dir/的根目录,就像你想要的那样。


1
我可以确认以上内容在2021年仍然有效。刚刚我不得不为一个带有自动生成图像的目录设置别名(多年前我放弃了Apache的httpd,转而使用lighttpd,因为Apache变得越来越复杂;此外,配置格式的更改也让我感到烦恼)。在使用alias.url=规范后,我可以将其简单地映射到“/images/”,这样就可以正常显示所有图像,包括.cgi文件的显示(我在2021年仍在使用它们!)。不要忘记那个斜杠,因为那个似乎很重要。 - shevy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接