contrib/lighttpd/lighttpd.conf

628 lines
21 KiB
Plaintext

#@ /etc/lighttpd.conf
var.basedir = "/var/www/lighttpd"
var.logdir = "/var/log/lighttpd"
var.statedir = "/var/lib/lighttpd"
#server.name = "www.NAME.DOMAIN"
#server.use-ipv6 = "disable"
server.max-read-idle = "10"
server.max-write-idle = "21"
server.max-keep-alive-idle = "10"
server.max-connections = "120"
#server.kbytes-per-second = 9000
server.username = "lighttpd"
server.groupname = "lighttpd"
server.document-root = var.basedir + "/htdocs"
server.pid-file = "/run/lighttpd.pid"
#server.breakagelog = "/tmp/cgibreak" # var.logdir + "/error.log"
# log errors to syslog instead
#server.errorlog-use-syslog = "enable"
#debug.log-request-handling = "enable"
server.errorlog = var.logdir + "/error.log"
server.indexfiles = ("index.html") # "index.php", "index.htm"...)
# server.tag = "lighttpd" # how server announces itself
server.follow-symlink = "enable"
server.event-handler = "linux-sysepoll"
# Enable HTTP/2
server.feature-flags += (
"server.h2proto" => "enable",
"server.h2c" => "enable"
)
# chroot to directory (defaults to no chroot)
# server.chroot = "/"
# bind to port (defaults to 80)
# server.port = 81
# bind to name (defaults to all interfaces)
# server.bind = "grisu.home.kneschke.de"
#connection.kbytes-per-second = 5000
# NOTE: the order of modules is important.
server.modules = (
"mod_openssl",
"mod_redirect",
"mod_rewrite",
"mod_alias",
"mod_access",
"mod_cgi",
"mod_setenv",
"mod_deflate",
"mod_expire",
"mod_accesslog"
)
mimetype.assign = ( # {{{
".cbor" => "application/cbor",
".efi" => "application/efi",
".epub" => "application/epub+zip",
".gz" => "application/gzip",
".tgz" => "application/gzip",
".js" => "application/javascript",
".json" => "application/json",
".json-patch" => "application/json-patch+json",
".mbox" => "application/mbox",
".doc" => "application/msword",
".mxf" => "application/mxf",
".bin" => "application/octet-stream",
".class" => "application/octet-stream",
".dll" => "application/octet-stream",
".exe" => "application/octet-stream",
".img" => "application/octet-stream",
".iso" => "application/octet-stream",
".lha" => "application/octet-stream",
".lzh" => "application/octet-stream",
".so" => "application/octet-stream",
".ogx" => "application/ogg",
".pdf" => "application/pdf",
".pem" => "application/pem-certificate-chain",
".pgp" => "application/pgp-encrypted",
".sig" => "application/pgp-signature",
".p10" => "application/pkcs10",
".p12" => "application/pkcs12",
".pfx" => "application/pkcs12",
".p7c" => "application/pkcs7-mime",
".p7m" => "application/pkcs7-mime",
".p7s" => "application/pkcs7-signature",
".p8" => "application/pkcs8",
".p8e" => "application/pkcs8-encrypted",
".cer" => "application/pkix-cert",
".crl" => "application/pkix-crl",
".pkipath" => "application/pkix-pkipath",
".pki" => "application/pkixcmp",
".pls" => "application/pls+xml",
".ai" => "application/postscript",
".eps" => "application/postscript",
".ps" => "application/postscript",
".rfcxml" => "application/rfc+xml",
".rtf" => "application/rtf",
".sieve" => "application/sieve",
".siv" => "application/sieve",
".sql" => "application/sql",
".xht" => "application/xhtml+xml",
".xhtm" => "application/xhtml+xml",
".xhtml" => "application/xhtml+xml",
".xlf" => "application/xliff+xml",
".dtd" => "application/xml-dtd",
".xop" => "application/xop+xml",
".xsl" => "application/xslt+xml",
".xslt" => "application/xslt+xml",
".yang" => "application/yang",
".yin" => "application/yin+xml",
".zip" => "application/zip",
".zst" => "application/zstd",
".qwd" => "application/vnd.Quark.QuarkXPress",
".qwt" => "application/vnd.Quark.QuarkXPress",
".qxb" => "application/vnd.Quark.QuarkXPress",
".qxd" => "application/vnd.Quark.QuarkXPress",
".qxl" => "application/vnd.Quark.QuarkXPress",
".qxt" => "application/vnd.Quark.QuarkXPress",
".swf" => "application/vnd.adobe.flash.movie",
".fcdt" => "application/vnd.adobe.formscentral.fcdt",
".fxp" => "application/vnd.adobe.fxp",
".fxpl" => "application/vnd.adobe.fxp",
".xdp" => "application/vnd.adobe.xdp+xml",
".xfdf" => "application/vnd.adobe.xfdf",
".afp" => "application/vnd.afpc.modca",
".dist" => "application/vnd.apple.installer+xml",
".distz" => "application/vnd.apple.installer+xml",
".mpkg" => "application/vnd.apple.installer+xml",
".pkg" => "application/vnd.apple.installer+xml",
".keynote" => "application/vnd.apple.keynote",
".m3u8" => "application/vnd.apple.mpegurl",
".numbers" => "application/vnd.apple.numbers",
".pages" => "application/vnd.apple.pages",
".deb" => "application/vnd.debian.binary-package",
".udeb" => "application/vnd.debian.binary-package",
".karbon" => "application/vnd.kde.karbon",
".chrt" => "application/vnd.kde.kchart",
".kfo" => "application/vnd.kde.kformula",
".flw" => "application/vnd.kde.kivio",
".kon" => "application/vnd.kde.kontour",
".kpr" => "application/vnd.kde.kpresenter",
".kpt" => "application/vnd.kde.kpresenter",
".ksp" => "application/vnd.kde.kspread",
".kwd" => "application/vnd.kde.kword",
".kwt" => "application/vnd.kde.kword",
".xul" => "application/vnd.mozilla.xul+xml",
".3mf" => "application/vnd.ms-3mfdocument",
".cil" => "application/vnd.ms-artgalry",
".asf" => "application/vnd.ms-asf",
".cab" => "application/vnd.ms-cab-compressed",
".xla" => "application/vnd.ms-excel",
".xlc" => "application/vnd.ms-excel",
".xlm" => "application/vnd.ms-excel",
".xls" => "application/vnd.ms-excel",
".xlt" => "application/vnd.ms-excel",
".xlw" => "application/vnd.ms-excel",
".xlam" => "application/vnd.ms-excel.addin.macroEnabled.12",
".xlsb" => "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
".xlsm" => "application/vnd.ms-excel.sheet.macroEnabled.12",
".xltm" => "application/vnd.ms-excel.template.macroEnabled.12",
".eot" => "application/vnd.ms-fontobject",
".chm" => "application/vnd.ms-htmlhelp",
".ims" => "application/vnd.ms-ims",
".lrm" => "application/vnd.ms-lrm",
".thmx" => "application/vnd.ms-officetheme",
".pot" => "application/vnd.ms-powerpoint",
".pps" => "application/vnd.ms-powerpoint",
".ppt" => "application/vnd.ms-powerpoint",
".ppam" => "application/vnd.ms-powerpoint.addin.macroEnabled.12",
".pptm" => "application/vnd.ms-powerpoint.presentation.macroEnabled.12",
".sldm" => "application/vnd.ms-powerpoint.slide.macroEnabled.12",
".ppsm" => "application/vnd.ms-powerpoint.slideshow.macroEnabled.12",
".potm" => "application/vnd.ms-powerpoint.template.macroEnabled.12",
".mpp" => "application/vnd.ms-project",
".mpt" => "application/vnd.ms-project",
".tnef" => "application/vnd.ms-tnef",
".tnf" => "application/vnd.ms-tnef",
".docm" => "application/vnd.ms-word.document.macroEnabled.12",
".dotm" => "application/vnd.ms-word.template.macroEnabled.12",
".wcm" => "application/vnd.ms-works",
".wdb" => "application/vnd.ms-works",
".wks" => "application/vnd.ms-works",
".wps" => "application/vnd.ms-works",
".wpl" => "application/vnd.ms-wpl",
".oxt" => "application/vnd.openofficeorg.extension",
".osm" => "application/vnd.openstreetmap.data+xml",
".pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation",
".sldx" => "application/vnd.openxmlformats-officedocument.presentationml.slide",
".ppsx" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
".potx" => "application/vnd.openxmlformats-officedocument.presentationml.template",
".xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
".xltx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
".docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
".dotx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
".wpd" => "application/vnd.wordperfect",
".tbz" => "application/x-gtar-compressed",
".hdf" => "application/x-hdf",
".jar" => "application/x-java-archive",
".kil" => "application/x-killustrator",
".latex" => "application/x-latex",
".cdf" => "application/x-netcdf",
".nc" => "application/x-netcdf",
".pl" => "application/x-perl",
".rpm" => "application/x-rpm",
".sh" => "application/x-sh",
".shar" => "application/x-shar",
".sit" => "application/x-stuffit",
".tar" => "application/x-tar",
".tcl" => "application/x-tcl",
".tex" => "application/x-tex",
".texi" => "application/x-texinfo",
".texinfo" => "application/x-texinfo",
".1" => "application/x-troff-man",
".2" => "application/x-troff-man",
".3" => "application/x-troff-man",
".4" => "application/x-troff-man",
".5" => "application/x-troff-man",
".6" => "application/x-troff-man",
".7" => "application/x-troff-man",
".8" => "application/x-troff-man",
".man" => "application/x-troff-man",
".me" => "application/x-troff-me",
".ms" => "application/x-troff-ms",
".ustar" => "application/x-ustar",
".xz" => "application/x-xz",
".aac" => "audio/aac",
".ass" => "audio/aac",
".acn" => "audio/asc",
".au" => "audio/basic",
".snd" => "audio/basic",
".mid" => "audio/midi",
".midi" => "audio/midi",
".m4a" => "audio/mp4",
".mp1" => "audio/mpeg",
".mp2" => "audio/mpeg",
".mp3" => "audio/mpeg",
".mpga" => "audio/mpeg",
".oga" => "audio/ogg",
".ogg" => "audio/ogg",
".opus" => "audio/ogg",
".spx" => "audio/ogg",
".aif" => "audio/x-aiff",
".aifc" => "audio/x-aiff",
".aiff" => "audio/x-aiff",
".flac" => "audio/x-flac",
".mka" => "audio/x-matroska",
".otf" => "font/otf",
".ttf" => "font/ttf",
".bmp" => "image/bmp",
".dib" => "image/bmp",
".cgm" => "image/cgm",
".drle" => "image/dicom-rle",
".emf" => "image/emf",
".fit" => "image/fits",
".fits" => "image/fits",
".fts" => "image/fits",
".gif" => "image/gif",
".heic" => "image/heic",
".heics" => "image/heic-sequence",
".heif" => "image/heif",
".heifs" => "image/heif-sequence",
".hej2" => "image/hej2k",
".hsj2" => "image/hsj2",
".ief" => "image/ief",
".jls" => "image/jls",
".jp2" => "image/jp2",
".jpg2" => "image/jp2",
".jfif" => "image/jpeg",
".jpe" => "image/jpeg",
".jpeg" => "image/jpeg",
".jpg" => "image/jpeg",
".jph" => "image/jph",
".jhc" => "image/jphc",
".jpgm" => "image/jpm",
".jpm" => "image/jpm",
".jpf" => "image/jpx",
".jpx" => "image/jpx",
".jxr" => "image/jxr",
".jxra" => "image/jxrA",
".jxrs" => "image/jxrS",
".jxs" => "image/jxs",
".jxsc" => "image/jxsc",
".jxsi" => "image/jxsi",
".jxss" => "image/jxss",
".ktx" => "image/ktx",
".png" => "image/png",
".btf" => "image/prs.btif",
".btif" => "image/prs.btif",
".pti" => "image/prs.pti",
".svg" => "image/svg+xml",
".svgz" => "image/svg+xml",
".t38" => "image/t38",
".tif" => "image/tiff",
".tiff" => "image/tiff",
".tfx" => "image/tiff-fx",
".webp" => "image/webp",
".wmf" => "image/wmf",
".psd" => "image/vnd.adobe.photoshop",
".azv" => "image/vnd.airzip.accelerator.azv",
".uvg" => "image/vnd.dece.graphic",
".uvi" => "image/vnd.dece.graphic",
".uvvg" => "image/vnd.dece.graphic",
".uvvi" => "image/vnd.dece.graphic",
".djv" => "image/vnd.djvu",
".djvu" => "image/vnd.djvu",
".dwg" => "image/vnd.dwg",
".dxf" => "image/vnd.dxf",
".fbs" => "image/vnd.fastbidsheet",
".fpx" => "image/vnd.fpx",
".fst" => "image/vnd.fst",
".mmr" => "image/vnd.fujixerox.edmics-mmr",
".rlc" => "image/vnd.fujixerox.edmics-rlc",
".pgb" => "image/vnd.globalgraphics.pgb",
".ico" => "image/vnd.microsoft.icon",
".apng" => "image/vnd.mozilla.apng",
".mdi" => "image/vnd.ms-modi",
".hdr" => "image/vnd.radiance",
".rgbe" => "image/vnd.radiance",
".xyze" => "image/vnd.radiance",
".s1n" => "image/vnd.sealed.png",
".spn" => "image/vnd.sealed.png",
".spng" => "image/vnd.sealed.png",
".tap" => "image/vnd.tencent.tap",
".vtf" => "image/vnd.valve.source.texture",
".wbmp" => "image/vnd.wap.wbmp",
".xif" => "image/vnd.xiff",
".pcx" => "image/vnd.zbrush.pcx",
".pnm" => "image/x-portable-anymap",
".pbm" => "image/x-portable-bitmap",
".pgm" => "image/x-portable-graymap",
".ppm" => "image/x-portable-pixmap",
".rgb" => "image/x-rgb",
".tga" => "image/x-targa",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".xwd" => "image/x-xwindowdump",
".art" => "message/rfc822",
".eml" => "message/rfc822",
".mail" => "message/rfc822",
".vrml" => "model/vrml",
".wrl" => "model/vrml",
".x3db" => "model/x3d+xml",
".x3dv" => "model/x3d-vrml",
".x3dvz" => "model/x3d-vrml",
".ics" => "text/calendar",
".ifb" => "text/calendar",
".css" => "text/css; charset=utf-8",
".csv" => "text/csv; charset=utf-8",
".csvs" => "text/csv-schema",
".soa" => "text/dns",
".zone" => "text/dns",
".htm" => "text/html",
".html" => "text/html",
".sandboxed" => "text/html-sandboxed",
".cnd" => "text/jcr-cnd",
".markdown" => "text/markdown; charset=utf-8",
".md" => "text/markdown; charset=utf-8",
".miz" => "text/mizar",
".n3" => "text/n3",
".asc" => "text/plain; charset=utf-8",
".c" => "text/plain; charset=utf-8",
".cc" => "text/plain; charset=utf-8",
".conf" => "text/plain; charset=utf-8",
".cxx" => "text/plain; charset=utf-8",
".el" => "text/plain; charset=utf-8",
".f90" => "text/plain; charset=utf-8",
".h" => "text/plain; charset=utf-8",
".hh" => "text/plain; charset=utf-8",
".hxx" => "text/plain; charset=utf-8",
".log" => "text/plain; charset=utf-8",
".pm" => "text/plain; charset=utf-8",
".spec" => "text/plain; charset=utf-8",
".text" => "text/plain; charset=utf-8",
".txt" => "text/plain; charset=utf-8",
".provn" => "text/provenance-notation",
".rst" => "text/prs.fallenstein.rst",
".dsc" => "text/prs.lines.tag",
".tag" => "text/prs.lines.tag",
".rtx" => "text/richtext",
".sgm" => "text/sgml",
".sgml" => "text/sgml",
".tsv" => "text/tab-separated-values",
".roff" => "text/troff",
".t" => "text/troff",
".tr" => "text/troff",
".ttl" => "text/turtle",
".uri" => "text/uri-list",
".uris" => "text/uri-list",
".vcard" => "text/vcard",
".vcf" => "text/vcard",
".vtt" => "text/vtt",
".rng" => "text/xml",
".xml" => "text/xml",
".xsd" => "text/xml",
".ent" => "text/xml-external-parsed-entity",
".dms" => "text/vnd.DMClientScript",
".a" => "text/vnd.a",
".abc" => "text/vnd.abc",
".ascii" => "text/vnd.ascii-art",
".copyright" => "text/vnd.debian.copyright",
".pod" => "text/x-pod",
".etx" => "text/x-setext",
".3gp" => "video/3gpp",
".3gpp" => "video/3gpp",
".3g2" => "video/3gpp2",
".3gpp2" => "video/3gpp2",
".m4s" => "video/iso.segment",
".mj2" => "video/mj2",
".mjp2" => "video/mj2",
".m4v" => "video/mp4",
".mp4" => "video/mp4",
".mpg4" => "video/mp4",
".m1v" => "video/mpeg",
".m2v" => "video/mpeg",
".mpe" => "video/mpeg",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".ogv" => "video/ogg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".webm" => "video/webm",
".yt" => "video/vnd.youtube.yt",
".axv" => "video/x-annodex",
".flv" => "video/x-flv",
".fxm" => "video/x-javafx",
".mkv" => "video/x-matroska",
".mk3d" => "video/x-matroska-3d",
".asx" => "video/x-ms-asf",
".wm" => "video/x-ms-wm",
".wmv" => "video/x-ms-wmv",
".wmx" => "video/x-ms-wmx",
".wvx" => "video/x-ms-wvx",
".avi" => "video/x-msvideo",
".movie" => "video/x-sgi-movie",
"README" => "text/plain; charset=utf-8",
"Makefile" => "text/x-makefile; charset=utf-8"
)
# }}}
# which extensions should not be handled via static-file transfer
# (extensions that are usually handled by mod_cgi, mod_fastcgi, etc).
static-file.exclude-extensions = (".cgi")
accesslog.filename = var.logdir + "/access.log"
#accesslog.use-syslog = "enable"
accesslog.format = "%t %V:%p <%s> %h I=%I O=%O T=%T : \"%r\""
# CGI stderr etc.
cgi.x-sendfile = "enable"
deflate.cache-dir = var.statedir + "/deflate"
deflate.mimetypes = ("text/", "application/x-tar")
deflate.allowed-encodings = ("gzip", "zstd")
url.access-deny = (".php", ".inc")
# Do not give access to /server-status page do non-local addresses
#$HTTP["remoteip"] !~ "10\..*|192\.168\..*|127\..*" {
# url.access-deny = ("/server-status")
#}
# url.rewrite = (
# "^/$" => "/server-status"
# )
ssl.disable-client-renegotiation = "enable"
#$SERVER["socket"] == ":443" {
# ssl.engine = "enable"
# ssl.pemfile = "/etc/letsencrypt/config/certs/HOST.DOM/key_and_cert.pem"
# ssl.ca-file = "/etc/letsencrypt/config/certs/HOST.DOM/fullchain.pem"
# ssl.dh-file = "/etc/letsencrypt/config/certs/HOST.DOM/dhparam2048.pem"
# ssl.use-sslv2 = "disable"
# # Need something for older OpenSSL (MacOS Lion, 2014!)
# ssl.use-sslv3 = "disable"
# ssl.cipher-list = "TLSv1.3:TLSv1.2:!aNULL:!eNULL:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES256-SHA:@STRENGTH"
# ssl.honor-cipher-order = "enable"
#
# # ServerNameIndication during negotiation: enable like
# #$HTTP["HOST"] == "www.HOST.DOM" {
# # ssl.pemfile =
# #}
#}
#$SERVER["socket"] == ":80" {
# # Get rid of a bug/problem: one can access bla.html/BLA
# $HTTP["url"] =~ ".+\.html\/.*" {
# url.redirect = ("^/?(.*)$" => "http://www.HOST.DOM/")
# }
# $HTTP["url"] =~ "^/\.well-known/acme-challenge" {
# url.access-deny = ("config")
# alias.url = ("/.well-known/acme-challenge" => "/etc/letsencrypt")
# }
#}
#$SERVER["socket"] == ":443" {
# # Get rid of a bug/problem: one can access bla.html/BLA
# $HTTP["url"] =~ ".+\.html\/.*" {
# url.redirect = ("^/?(.*)$" => "https://www.HOST.DOM/")
# }
#}
#$HTTP["host"] =~ "^download\.HOST\.DOM" {
# url.rewrite-once = (
# "^(/.well-known/.+)" => "$1",
# "^/?(style\.css|favicon\.ico)$" => "/$1",
# "^/?(.*)$" => "/downloads/$1"
# )
# $HTTP["url"] =~ "^/downloads(.*)?$" {
# alias.url = ("/downloads" => var.basedir + "/downloads")
# dir-listing.activate = "enable"
# dir-listing.external-css = "/style.css"
# }
#}
# Serve git.HOST.DOM/scm for git access /browse for gitweb browsing.
# Note that all the gitweb static/ files must reside in htdocs with this config
# and all git repositories must be in /var/git to which server needs access
# /etc/gitweb-common.conf:
##read_config_file("gitweb_config.perl");
#our $projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/pub/git";
#our $project_maxdepth = 1;
#our $export_ok = 'git-daemon-export-ok';
#our $strict_export = 1;
#our @stylesheets = ("gitweb.css");
#our $logo = 'git-logo.png';
#our $favicon = 'git-favicon.png';
#our $javascript = 'gitweb.js';
##our $home_link = '/code.html';
#our @extra_breadcrumbs = ( [ 'Hacking' => 'code.html' ] );
#our $projects_list_description_width = 66;
#our $prevent_xss = 1;
#our $maxload = 5;
#our $omit_owner = 1;
#our $default_text_plain_charset = "utf8";
#our @git_base_url_list = ( 'https://git.HOST.DOM/scm',
# 'http://git.HOST.DOM/scm' );
#$feature{avatar}{default} = [0];
#$feature{blame}{default} = [0];
#$feature{grep}{default} = [0];
#$feature{highlight}{default} = [0];
#$feature{pickaxe}{default} = [0];
#$feature{remote_heads}{default} = [0];
#$feature{show-sizes}{default} = [0];
#$feature{snapshot}{default} = ['none']; #['txz', 'tgz'];
##$known_snapshot_formats{'tgz'}{'compressor'} = ['gzip','-6'];
##$known_snapshot_formats{'txz'}{'compressor'} = ['xz']
#$feature{search}{default} = [1];
#$feature{timed}{default} = [1];
#$feature{extra-branch-refs}{default} = ['stable','release'];
#$HTTP["host"] =~ "^git\.HOST\.DOM" {
# url.rewrite-once = ("^/?$" => "/browse")
# $HTTP["url"] =~ "^/browse(/.*)?$" {
# accesslog.format = "%V:%p <%s> %h I=%I O=%O T=%T GW"
# alias.url = ("/browse" => "/usr/share/gitweb/gitweb.cgi")
# cgi.assign = ("" => "")
# connection.kbytes-per-second = 32
# expire.url = ("" => "access plus 0 seconds")
# server.max-keep-alive-requests = 3
# setenv.add-environment = (
# "PERL5OPT" => "-C",
# "GITWEB_PROJECTROOT" => "/var/git"
# )
# # Funny people try to access /browse via git, redirect them
# url.redirect = (
# "^.*/([^/]+\.git/objects/.*)" => "https://git.HOST.DOM/scm/$1",
# "^.*/([^/]+\.git/info/refs\?service.*)" =>
# "https://git.HOST.DOM/scm/$1"
# )
# }
# $HTTP["url"] =~ "^/scm" {
# alias.url = ("/scm" => "/usr/libexec/git-core/git-http-backend")
# cgi.assign = ("" => "")
# server.max-keep-alive-requests = 1
# setenv.add-environment = (
# "GIT_PROJECT_ROOT" => "/var/git",
# "GIT_HTTP_EXPORT_ALL" => ""
# )
# }
#}
# Mailing-lists
#$HTTP["host"] =~ "^lists\.HOST\.DOM" {
# url.rewrite-once = (
# "^(/.well-known/.+)" => "$1",
# "^/$" => "/mailman/listinfo.cgi"
# #"^/([^/.]+)$" => "/mailman/$1.cgi",
# )
# $HTTP["url"] =~ "^/mailman" {
# alias.url = ("/mailman/" => "/var/mailman/cgi-bin/")
# cgi.assign = (".sh" => "/bin/sh", "" => "")
# expire.url = ("" => "access plus 0 seconds")
# server.max-keep-alive-requests = 1
# }
# $HTTP["url"] =~ "^/pipermail" {
# alias.url = ("/pipermail/" => "/var/mailman/archives/public/")
# server.max-keep-alive-requests = 3
# }
# $HTTP["url"] =~ "^/icons" {
# alias.url = ("/icons/" => "/var/mailman/icons/")
# expire.url = ("" => "access plus 23 hours")
# }
#}
#$HTTP["host"] =~ "^(www\.)?HOST\.DOM" {
# url.rewrite-once = ("^/downloads/?(.*)?$" => "/downloads/$1")
# $HTTP["url"] =~ "^/downloads(.*)?$" {
# alias.url = ("/downloads" => var.basedir + "/downloads")
# dir-listing.activate = "enable"
# dir-listing.external-css = "/style.css"
# }
# $HTTP["url"] =~ "^/browse(/.*)?$" {
# url.redirect = ("^/?(.*)$" => "https://git.HOST.DOM/$1")
# }
# $HTTP["url"] =~ "^/ftp" {
# url.redirect = ("^/ftp(/.*)?$" => "https://ftp.HOST.DOM$1")
# }
# $HTTP["url"] =~ "^/lists" {
# url.redirect = ("^/lists(/.*)?$" => "https://lists.HOST.DOM$1")
# }
# $HTTP["url"] =~ "^/scm" {
# url.redirect = ("^/?(.*)$" => "https://git.HOST.DOM/$1")
# }
#}
$HTTP["url"] =~ "\.(css|gif|html|jpg|js|png)$" {
expire.url = ("" => "access plus 23 hours")
}
# s-it-mode