我有一个备用的 Raspberry Pi,所以我决定检查一下 PirateBox。
我已将其全部运行,但默认行为是不重定向 https 请求。鉴于 PirateBox 永远不会连接到互联网,并且连接的人很可能不知道要请求的地址,我想将所有请求(http 和 https)重定向到 PirateBox Uri,piratebox.lan
我想将其设置为类似于强制门户,但我不需要身份验证,并且请求将始终被重定向
PirateBox 使用 Arch Linux 和 dnsmasq 以及 lighttpd。
我当前的设置是
/etc/dnsmasq.conf
address=/#/192.168.77.1
/opt/piratebox/conf/lighttpd/lighttpd.conf
$HTTP["host"] !~ "^piratebox\.lan.*$" {
url.redirect = ( "^/(.*)$" => "http://piratebox.lan/redirect.html" )
}
$SERVER["socket"] == ":443" {
$HTTP["host"] !~ "^piratebox\.lan.*$" {
url.redirect = ( "^/(.*)$" => "http://piratebox.lan/redirect.html" )
}
}
$SERVER["socket"] == ":80" {
$HTTP["host"] !~ "^piratebox\.lan.*$" {
url.redirect = ( "^/(.*)$" => "http://piratebox.lan/redirect.html")
}
}
虽然所有 http 请求都重定向到 PirateBox 页面,但 https 请求不会被重定向,并且 PirateBox 页面也不会加载,只是超时。
我做错了什么或者我应该用不同的方法来解决这个问题?
更新
我也尝试过
$HTTP["scheme"] == "https" {
url.redirect = ( "^/(.*)$" => "http://piratebox.lan/redirect.html" )
}
也不起作用
答案1
我对此没有太多经验lighttpd
,但从配置文件的语义来看,在我看来,如果您有来自 port 的连接443
,它将重定向到 port ,443
无论您是否http://
在 URL 中指定。如果我理解正确并且您想要重定向到 port 80
,则需要在指令中明确指定它:
url.redirect = ( "^/(.*)$" => "http://piratebox.lan:80/redirect.html" )