![使用 lighttpd 重新導向所有 http 和 https 請求](https://rvso.com/image/1452241/%E4%BD%BF%E7%94%A8%20lighttpd%20%E9%87%8D%E6%96%B0%E5%B0%8E%E5%90%91%E6%89%80%E6%9C%89%20http%20%E5%92%8C%20https%20%E8%AB%8B%E6%B1%82.png)
我有一個備用的 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" )