
我有一個備用的 Raspberry Pi,所以我決定看看 PirateBox。
我一切正常,但預設行為是不重定向 https 請求。鑑於 PirateBox 永遠不會連接到互聯網,而且連接的人很可能不知道要請求的地址,我想將所有請求(http 和 https)重定向到 PirateBox Uri,piratebox.lan
我想將其設置為類似於強制門戶,但我不需要身份驗證,並且請求將始終被重定向
PirateBox 使用 dnsmasq 和 lighttpd 的 Arch Linux。
我目前的設定是
/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 上有連接,則無論您在 URL 中指定還是指定,443
它都會重定向到端口,您需要在指令中明確指定它:443
http://
80
url.redirect = ( "^/(.*)$" => "http://piratebox.lan:80/redirect.html" )