予備のラズベリーパイを持っているので、PirateBoxをチェックすることにしました。
私はそれをすべて機能させていますが、デフォルトの動作はhttpsリクエストをリダイレクトしないことです。 PirateBoxがインターネットに接続されることはなく、接続している人はリクエストするアドレスを知らない可能性が高いため、すべてのリクエスト(http&https)をPirateBox Uri、piratebox.lanにリダイレクトしたいと思います。
キャプティブポータルと同様に設定したいのですが、認証は不要で、リクエストは常にリダイレクトされます
PirateBoxは、dnsmasqとlighttpdでArchLinuxを使用します。
私の現在の設定は
/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" )
}
そしてそれも機能しません
私はlighttpd
自体についてはあまり経験がありませんが、構成ファイルのセマンティクスから、ポート443
で接続が確立されている場合はそうなるようです。 URLで443
を指定するかどうかに関係なく、ポートhttp://
にリダイレクトします。私が正しく理解していて、ポート80
にリダイレクトしたい場合は、ディレクティブで明示的に指定する必要があります。
url.redirect = ( "^/(.*)$" => "http://piratebox.lan:80/redirect.html" )