server.tag                  = "LightTPD/1.4.19 (Win32)"
server.modules              = ( "mod_accesslog",
                                "mod_alias",
                                "mod_cgi",
                                "mod_rewrite" )

# default document root required
server.document-root = "."

# files to check for if .../ is requested
index-file.names            = ( "index.php", "index.pl", "index.cgi",
                                "index.html", "index.htm", "default.htm" )
# mimetype mapping
mimetype.assign             = (
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".svg"          =>      "image/svg+xml",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".xhtml"        =>      "application/xhtml+xml",
  ".js"           =>      "application/x-javascript",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".manifest"     =>      "text/cache-manifest",
 )

# Use the "Content-Type" extended attribute to obtain mime type if possible
mimetype.use-xattr          = "enable"

##
# which extensions should not be handle via static-file transfer
#
# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
static-file.exclude-extensions = ( ".php", ".pl", ".cgi" )

server.bind = "localhost"
server.port = 8001

## virtual directory listings
dir-listing.activate        = "enable"
#dir-listing.encoding       = "iso-8859-2"
#dir-listing.external-css   = "style/oldstyle.css"

## enable debugging
#debug.log-request-header   = "enable"
#debug.log-response-header  = "enable"
#debug.log-request-handling = "enable"
#debug.log-file-not-found   = "enable"

#### SSL engine
#ssl.engine                 = "enable"
#ssl.pemfile                = "server.pem"

# Rewrite rule for utf-8 path test (LayoutTests/http/tests/uri/utf8-path.html)
# See the apache rewrite rule at LayoutTests/http/tests/uri/intercept/.htaccess
# Rewrite rule for LayoutTests/http/tests/appcache/cyrillic-uri.html.
# See the apache rewrite rule at
# LayoutTests/http/tests/appcache/resources/intercept/.htaccess
url.rewrite-once = (
  "^/uri/intercept/(.*)" => "/uri/resources/print-uri.php",
  "^/appcache/resources/intercept/(.*)" => "/appcache/resources/print-uri.php",
  "^/security/xssAuditor/intercept/([^/]*)/(.*)" => "/security/xssAuditor/resources/$1?q=$2"
)

# LayoutTests/http/tests/xmlhttprequest/response-encoding.html uses an htaccess
# to override charset for reply2.txt, reply2.xml, and reply4.txt.
$HTTP["url"] =~ "^/xmlhttprequest/resources/reply2.(txt|xml)" {
  mimetype.assign = (
    ".txt" => "text/plain; charset=windows-1251",
    ".xml" => "text/xml; charset=windows-1251"
  )
}
$HTTP["url"] =~ "^/xmlhttprequest/resources/reply4.txt" {
  mimetype.assign = ( ".txt" => "text/plain; charset=koi8-r" )
}

# LayoutTests/http/tests/appcache/wrong-content-type.html uses an htaccess
# to override mime type for wrong-content-type.manifest.
$HTTP["url"] =~ "^/appcache/resources/wrong-content-type.manifest" {
  mimetype.assign = ( ".manifest" => "text/plain" )
}

# Autogenerated test-specific config follows.
