Actions
How to redirect HTTP requests to HTTPS¶
Further details and examples can be found in mod_redirect
redirect everything¶
$HTTP["scheme"] == "http" {
url.redirect = ("" => "https://${url.authority}${url.path}${qsa}")
#url.redirect-code = 308 # (before lighttpd 1.4.75)
}
redirect everything, but not for connections from IPv4 or IPv6 localhost¶
$HTTP["scheme"] == "http" {
$HTTP["remote-ip"] != "127.0.0.1" {
$HTTP["remote-ip"] != "[::1]" {
url.redirect = ("" => "https://${url.authority}${url.path}${qsa}")
#url.redirect-code = 308 # (before lighttpd 1.4.75)
}
}
}
redirect specific url from http to https¶
$HTTP["scheme"] == "http" {
url.redirect = ("^/phpmyadmin/" => "https://${url.authority}${url.path}${qsa}")
#url.redirect-code = 308 # (before lighttpd 1.4.75)
}
redirect specific vhost and url from http to https¶
$HTTP["scheme"] == "http" {
$HTTP["host"] == "sth.example.com" {
url.redirect = ("^/phpmyadmin/.*" => "https://sth.example.com$0")
#url.redirect-code = 308 # (before lighttpd 1.4.75)
}
}
redirect everything from a non-standard port (i.e. not 80) from http to https¶
$HTTP["scheme"] == "http" {
$HTTP["host"] =~ "^(.*?)(:\d+)?$" { ## %1 contains hostname without port
url.redirect = ("" => "https://%1${url.path}${qsa}")
#url.redirect-code = 308 # (before lighttpd 1.4.75)
}
}
Earlier versions of lighttpd 1.4.x before lighttpd 1.4.50 may replace the url.redirects above with a combination of regexes:¶
redirect everything from http to https¶
$HTTP["scheme"] == "http" {
# capture vhost name with regex conditiona -> %0 in redirect pattern
# must be the most inner block to the redirect rule
$HTTP["host"] =~ ".*" {
url.redirect = (".*" => "https://%0$0")
url.redirect-code = 308
}
}
redirect specific url from http to https¶
$HTTP["scheme"] == "http" {
$HTTP["host"] =~ ".*" {
url.redirect = ("^/phpmyadmin/.*" => "https://%0$0")
url.redirect-code = 308
}
}
Updated by gstrauss over 1 year ago · 33 revisions