【问题标题】:Lighttpd: Let sub-path point to different document rootLighttpd:让子路径指向不同的文档根
【发布时间】:2023-07-02 10:07:01
【问题描述】:

我有一个指向文档根 /var/www 的 lighttpd-Setup。但是,我希望 URL other/ 指向 /some/other/dir。我正在使用以下配置进行此操作:

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

但是,如果我访问“http://myhost/other”,lighttpd 会尝试访问 /some/other/dir/other 而不仅仅是 /some/other/dir。是否有可能以某种方式剥离 /other 但保留任何进一步的 URL 段?例如,http://myhost/other/sub/foo.txt 应该指向 /some/other/dir/sub/foo.txt

【问题讨论】:

    标签: lighttpd subdirectory document-root


    【解决方案1】:

    您可以使用mod_alias 来实现此目的,而不是尝试设置server.document-root

    server.modules = ( ..., "mod_alias" )
    
    ...
    
    alias.url = ( "/other/" => "/some/other/dir/" )
    

    这将创建一个别名,以便所有对/other/ 的请求和该文件夹内的资源都将被重定向到文件系统上的/some/other/dir/,直接对/other/ 的请求被直接指向@987654327 的根目录@,如你所愿。

    【讨论】:

    • 我可以确认上述方法在 2021 年仍然有效。刚才我不得不用自动生成的图像给一个目录起别名(几年前我放弃了 apache 的 httpd,转而使用 lighttpd,因为 apache 变得越来越复杂;配置格式的变化也让我很恼火)。使用 alias.url= 规范后,我可以简单地将它映射到“/images/”上,这样就可以了;所有图像都显示良好,包括来自 .cgi 文件的显示(我在 2021 年仍在使用它们!)。不要忘记尾随的 /,因为那似乎很重要。
    最近更新 更多