2010-10-26 91 views
1

我收到了一個特殊請求。我用lighttpd evhost和一切正常,除了這個:多個文檔根

$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目錄。

問候

反叛先生

回答

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可以是同一個目錄。

+0

選項2看起來很有趣。要檢查出來。我在其他服務器上使用選項1,它的功能就像一個魅力。 – 2010-10-27 06:44:42

+0

非常感謝Eric – 2010-10-27 06:45:21