Предыстория: - Lighttpd 1.4.28 - Debian 6.0.7 i686
Этот веб-сервер используют несколько разработчиков, и у каждого из них есть свой виртуальный хост, названный в честь «username.mysite.tld». Эти хосты работают нормально, и я хотел бы создать общее правило для директивы server.errorfile-prefix.
В lighttpd.conf у меня есть:
$HTTP["host"] =~ "user1.mysite.tld" {
server.errorfile-prefix = "/home/user1/www/cache_html/error-"
}
$HTTP["host"] =~ "user2.mysite.tld" {
server.errorfile-prefix = "/home/user2/www/cache_html/error-"
}
$HTTP["host"] =~ "user3.mysite.tld" {
server.errorfile-prefix = "/home/user3/www/cache_html/error-"
}
Существуют файлы /home/userX/www/cache_html/error-404.html.
Я хотел бы заменить эту копипасту на:
var.users="user1|user2|user3"
$HTTP["host"] =~ "^(" + users + ")\.mysite\.tld(:[0-9]+)?$" {
server.errorfile-prefix = "/home/%1/www/cache_html/error-"
}
Но это не работает: пользовательские страницы 404 не найдены (какая ирония! ;-)
Но если я попробую:
var.users="user1|user2|user3"
$HTTP["host"] =~ "^(" + users + ")\.mysite\.tld(:[0-9]+)?$" {
server.errorfile-prefix = "/home/user1/www/cache_html/error-"
}
Затем для всех пользователей обслуживается собственная страница 404 пользователя user1. Похоже, что с моим регулярным выражением и "% 1" в пути что-то не так. Что мне не хватает?
только очень небольшой набор опций принимает «строки шаблона»; server.errorfile-prefix - нет (server.errorfile-prefix специально разработан, чтобы быть очень простым во внутренней обработке, чтобы он не выходил из строя снова, поэтому он поддерживает только статические файлы).
вместо этого вы можете попытаться создать конфигурацию с помощью include_shell.