Lighttpd

lighttpd 域和 url 匹配

  • December 13, 2012

我正在嘗試配置 lighttpd 以便:

所以基本上, 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 也匹配。

引用自:https://serverfault.com/questions/393960