Lighttpd
lighttpd 域和 url 匹配
我正在嘗試配置 lighttpd 以便:
- www.domain1.org/admin 使用 config1
- www.domain1.org 上的任何其他 URL 都使用 config2
- www.domain2.org 上的任何 url 都使用 config2
所以基本上, domain1 和 domain2 應該使用相同的配置,除非通過以 /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” $$有條件的。
此外,重寫必須始終使用絕對路徑,因此您應該為匹配添加前綴 /admin,並且目標和 fastcgi.server 也匹配。