多个文档根

时间:2010-10-26 13:16:00

标签: lighttpd

我有特殊要求。我使用evhost和lighttpd,一切正常,除了这个:

$HTTP["host"] =~ "^[^.]+\.[^.]+$" {
     evhost.path-pattern = vhosts_dir + "/customers/%2.%1/public/"
     evhost.path-pattern = vhosts_dir + "/customershops/%2.%1/public/"
     evhost.path-pattern = vhosts_dir + "/company/%2.%1/public/"
}

所以我想让我的模式上面的目录“动态”。或者实际上只需查看三个目录,然后使用正确的vhost目录。

祝你好运

Rebel先生

1 个答案:

答案 0 :(得分:0)

mod_evhost必须能够从提交的主机名的部分中找出一个文档根目录。它无法猜测三个选项,也不能确定哪个选项存在(特别是如果不经意间有多个选项出现这种情况)。

您必须在主机名中提供mod_evhost足够的信息才能明确选择路径,否则您必须在文件系统中至少进行一级重定向。

选项1:

evhost.path-pattern = vhosts_dir + "/%2.%1/public/"
这会丢失您想要捕获的所有客户/商店/公司信息,但实际上它使mod_evhost可以正常工作。

选项2:您可以根据需要拆分目录,一个目录,其中包含指向这些目录的链接。 FS具有可见结构,mod_evhost只需要猜测重定向到结构中的链接的名称。

  directory_containing_links/
    foo.bar -> ./customers/foo.bar/public/
    foo.baz -> ./customershops/foo.baz/public/
    foo.qux -> ./company/foo.qux/public/
    quux.bar -> ./customershops/quux.bar/public/
    quux.baz -> ./customers/quux.baz/public/
    (and so on, with one link per site)
  directory_containing_sites/
    company/foo.qux/public/(web site here)
    customers/foo.bar/public/(web site here)
    customers/quux.baz/public/(web site here)
    customershops/foo.baz/public/(web site here)
    customershops/quux.bar/public/(web site here)
然后你的evhost模式是
evhost.path-pattern = directory_containing_links + "/%2.%1/"
请注意,directory_containing_links和directory_containing_sites可以是同一目录。