Leiten Sie alle http- und https-Anfragen mit lighttpd um

Leiten Sie alle http- und https-Anfragen mit lighttpd um

Ich habe einen Raspberry Pi übrig und habe beschlossen, PirateBox auszuprobieren.

Bei mir funktioniert alles, aber das Standardverhalten besteht darin, keine HTTPS-Anfragen umzuleiten. Da die PirateBox nie mit dem Internet verbunden sein wird und die Leute, die eine Verbindung herstellen, höchstwahrscheinlich nicht wissen, welche Adresse sie anfordern sollen, möchte ich alle Anfragen (http und https) an die PirateBox-URI piratebox.lan umleiten.

Ich möchte es ähnlich wie ein Captive Portal einrichten, brauche aber keine Authentifizierung und die Anfragen werden immer umgeleitet

PirateBox verwendet Arch Linux mit dnsmasq und lighttpd.
Meine aktuellen Einstellungen sind

/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")
        }
}

Während alle HTTP-Anfragen auf die PirateBox-Seite umgeleitet werden, werden HTTPS-Anfragen nicht umgeleitet und die PirateBox-Seite wird nicht geladen, es kommt lediglich zu einer Zeitüberschreitung.

Was mache ich falsch oder sollte ich das anders angehen?

Aktualisieren
Ich habe auch versucht

$HTTP["scheme"] == "https" {
        url.redirect = ( "^/(.*)$" => "http://piratebox.lan/redirect.html" )
}

und es funktioniert auch nicht

Antwort1

Ich habe nicht viel Erfahrung damit lighttpd, aber aus der Semantik der Konfigurationsdatei schließe ich, dass bei einer eingehenden Verbindung über Port eine 443Umleitung zu Port erfolgt, 443unabhängig davon, ob Sie dies http://in der URL angeben oder nicht. Wenn ich das richtig verstehe und Sie eine Umleitung zu Port wünschen 80, müssen Sie dies explizit in der Anweisung angeben:

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

verwandte Informationen