lighttpd domains e url matching

1

Estou tentando configurar o lighttpd para que:

  • www.domain1.org/admin usa config1
  • qualquer outro URL em www.domain1.org usa config2
  • qualquer URL em www.domain2.org usa config2

Então, basicamente, domain1 e domain2 devem usar a mesma configuração, exceto quando domain1 é acessado por meio de uma URL que começa com / admin

Eu tentei até agora várias variações, incluindo esta:

$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
}

Mas não importa o que aconteça, acessar domain1.org/admin produz um 404.

Existe alguma coisa que esteja faltando?

    
por Manuel Bernhardt 30.05.2012 / 15:17

1 resposta

3

Veja o link :

NOTE: url rewriting does not work within a $HTTP["url"] conditional.

Além disso, as reescritas devem sempre usar o caminho absoluto, portanto, você deve prefixar suas correspondências com / admin e targets e a correspondência fastcgi.server também.

    
por 13.12.2012 / 11:25

Tags