redirecionando solicitações HTTPS para http no lighttpd

3

Eu tenho um servidor lighttpd em execução que possui um certificado SSL instalado. Eu gostaria, por certas razões, gostaria de encaminhar todos os https: // www. pedidos para http: // www.

Meu código lighttpd se parece com o seguinte:

$SERVER["socket"] == ":443"
{
   ssl.engine = "enable"
   ssl.pemfile = "/path/to/pem/file"
   ssl.ca-file = "/path/to/ca/file"
   HTTP["host"] =~ "^www\.(.*)$" {
       url.redirect = ("^/(.*)" => "http://www.%1$1")
   }
}

Você pode por favor apontar o problema aqui? Outra coisa, qual é a diferença entre% 1 e $ 1?

    
por chochim 20.11.2012 / 08:09

1 resposta

2

Eu usei este aqui:

$HTTP["scheme"] == "https" {
        $HTTP["host"] =~ "example.com" {
                url.redirect = ( "^/(.*)" => "http://www.example.com/$1" )
        }
}

Mas tenha cuidado, algum navegador deve ter em mente que um site usa https . Por isso, ele sempre tentará acessar a versão https , independentemente do redirecionamento que enviar o servidor da web. Eu tentei este caso e o Firefox / Chrome me disse que meu site entra em um loop de redirecionamento infinito. Mas quando eu enrolo meu site em https , recebo um 301 para http . E em http a 200.

Então é difícil testar ...

Para sua segunda pergunta, no documento :

Note that the "%1" in the url.redirect target refers to the parenthesized subexpression in the conditional regexp (.*). It does not necessarily have the meaning that "%1" would have in evhost.path-pattern (where it would mean 'top-level domain'). If url.redirect is specified within a regex conditional, % patterns are replaced by the corresponding groups from the condition regex. %1 is replaced with the first subexpression, %2 with the second, etc. %0 is replaced by the entire substring matching the regexp. See above and below for examples using % patterns.

    
por 20.11.2012 / 10:31

Tags