使用 lighttpd 重新導向所有 http 和 https 請求

使用 lighttpd 重新導向所有 http 和 https 請求

我有一個備用的 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它都會重定向到端口,您需要在指令中明確指定它:443http://80

url.redirect = ( "^/(.*)$" => "http://piratebox.lan:80/redirect.html" )

相關內容