lighttpd域名和url匹配

我正在尝试configurationlighttpd,以便:

  • www.domain1.org/admin使用config1
  • www.domain1.org上的任何其他URL使用config2
  • www.domain2.org上的任何url都使用config2

所以基本上,domain1和domain2应该使用相同的configuration,除非通过以/ admin开头的URL访问domain1

我尝试了很多变化,包括这一个:

$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”]条件下不起作用。

此外,重写必须始终使用绝对path,所以你应该用/ admin前缀匹配,目标和fastcgi.server匹配。