Я пытаюсь настроить lighttpd так, чтобы:
Таким образом, в основном, domain1 и domain2 должны использовать одну и ту же конфигурацию, за исключением случаев, когда доступ к domain1 осуществляется через URL-адрес, который начинается с / admin.
Я пробовал пока несколько вариантов, в том числе этот:
$HTTP["host"] =~ "domain1.org" {
$HTTP["url"] =~ "^/admin" {
// config1
alias.url = ("/media/admin" => "/usr/share...",
"/static" => "/var/www/...")
url.rewrite-once = (
"^(/media/admin.*)$" => "$1",
"^(/static.*)$" => "$1",
"^/favicon\.ico$" => "/media/favicon.ico",
"^(/.*)$" => "/application.fcgi$1",
)
server.document-root="/var/www/application"
fastcgi.debug = 1
fastcgi.server = (
"/application.fcgi" => (
"main" => (
"socket" => "/var/www/application/application.sock",
"check-local" => "disable",
)
),
)
} else $HTTP["url"] !~ "^/admin" {
// config2
}
$HTTP["host"] !~ "domain1.org" {
// config2
}
Но, несмотря ни на что, доступ к domain1.org/admin дает ошибку 404.
Что мне не хватает?
Видеть http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModRewrite:
ПРИМЕЧАНИЕ: переопределение URL-адресов не работает в условном $ HTTP ["url"].
Кроме того, при перезаписи всегда должен использоваться абсолютный путь, поэтому вы должны ставить перед совпадениями префикс / admin, а также цели и совпадения fastcgi.server.