Como redirecionar URLs sem interromper um aplicativo FastCGI?

1

(Eu considero essa pergunta uma duplicata do Lighttpd redirecionado de www.domain.com para domain.com , mas esse não conseguiu o suficiente atenção e é muito velho).

Estou tentando implantar um aplicativo em lighttpd + FastCGI e criptografar todos o transito. Funciona bem se eu usar explicitamente HTTPS na URL, mas assim que eu tento o redirecionamento de HTTP para HTTPS os URLs do aplicativo nome do script (neste caso, index.py) está incluído no URL, então em vez de link eu recebo link , que aciona um erro Não encontrado.

Eu tentei mover algumas coisas, mas não consigo saber como fazer redirecionar bem. Aqui está o material relevante do meu lighttpd.conf

$SERVER["socket"] == ":80" {
    $HTTP["host"] =~ "(.*)" {
        url.redirect = (
            "^/(.*)" => "https://%1/$1"
        )
    }
}

$SERVER["socket"] == ":443" {
    ssl.engine = "enable"
    ssl.pemfile = "certificate.pem"
    ssl.use-sslv2 = "disable"
    ssl.use-sslv3 = "disable"
}

fastcgi.server = (
    "index.py" => ((
        "socket" => "/tmp/app.socket",
        "bin-path" => "index.py",
        "max-procs" => 1,
        "bin-environment" => (
            "REAL_SCRIPT_NAME" => ""
        ),
        "check-local" => "disable"
    ))
)

url.rewrite-once = (
    "^/favicon.ico$" => "/static/assets/favicon.ico",
    "^/static/(.*)$" => "/static/$1",
    "^/(.*)$" => "/index.py/$1"
)
    
por Tae 03.12.2013 / 01:58

1 resposta

0

a reescrita acontece antes do redirecionamento. no seu caso a solução é colocar o fastcgi e reescrever no socket ssl, como você só quer para o ssl mesmo assim.

Por favor, não crie sockets em / tmp, use um diretório dedicado a isso onde apenas o lighttpd pode criar arquivos.

    
por 03.12.2013 / 11:29