2010-10-26 2 views
1

У меня есть специальный запрос. Я использую 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.

С наилучшими пожеланиями

Mr Rebel

ответ

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 на других моих серверах, и он работает как шарм. –

+0

Большое спасибо Эрик –

Смежные вопросы