Redirecione todas as solicitações http e https com lighttpd

Redirecione todas as solicitações http e https com lighttpd

Eu tenho um Raspberry Pi sobressalente, então decidi dar uma olhada no PirateBox.

Tenho tudo funcionando, porém o comportamento padrão é não redirecionar solicitações https. Dado que o PirateBox nunca estará conectado à Internet e as pessoas que se conectarem provavelmente não saberão o endereço a ser solicitado, gostaria de redirecionar todas as solicitações (http e https) para o PirateBox Uri, piratebox.lan

Gostaria de configurá-lo para ser semelhante a um portal cativo, mas não preciso de autenticação e as solicitações serão sempre redirecionadas

PirateBox usa Arch Linux com dnsmasq e lighttpd.
Minha configuração atual é

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

Embora todas as solicitações http sejam redirecionadas para a página PirateBox, as solicitações https não são redirecionadas e a página PirateBox não é carregada, apenas expira.

O que estou fazendo de errado ou devo abordar isso de uma maneira diferente?

Atualizar
Eu também tentei

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

e também não funciona

Responder1

Não tenho muita experiência consigo lighttpdmesmo, mas pela semântica do arquivo de configuração, me parece que se você tiver uma conexão chegando em port 443, ela será redirecionada para port 443independentemente de você especificar http://na URL ou não. Se bem entendi e você deseja redirecionar para port 80, você precisa especificá-lo explicitamente na diretiva:

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

informação relacionada