OpenBGP httpd.conf

3

Como redirecionar uma solicitação http para uma página específica usando httpd do OpenBSD; Por exemplo, estou exibindo OpenBGPd bgplg , assim como em httpd.conf :

ext_addr="127.0.0.1"

server "www.example.conf" {
listen on $ext_addr port 80
        location "/cgi-bin/*" {
                fastcgi
                root ""
        }
}

Como tornar possível redirecionar www.example.com para www.example.com/cgi-bin/bgplg, em vez de precisar digitar exatamente www.example.com/cgi-bin/bgplg.

Eu tentei algumas opções, mas nenhuma parece funcionar. Obrigado

    
por bbzz 11.02.2017 / 23:48

1 resposta

2

Para usar um simples block return de redirecionamento, ele precisa de um bloco de localização / específico ou loop infinitamente (observando que o bloco de localização / está sem um caractere curinga para que os recursos possam ser ignorados)

server "www.example.conf" {
    listen on $ext_addr port 80
        location "/cgi-bin/*" {
                fastcgi
                root ""
        }

        location "/" {
                # 302 (Temporary) while testing
                # 301 (Permanent) when you're done & sure
                block return 302 "/cgi-bin/bgplg"
        }
}

Agora, há outro truque que geralmente funciona: root é passado para o fastcgi como a variável DOCUMENT_ROOT , que é executada se existir.

Um efeito colateral é que o httpd não define o SCRIPT_NAME que o bgplg requer e, portanto, não funciona; mas outros scripts que não se baseiam nele ou funcionam normalmente, funcionarão bem ( e poderão manipular / sozinhos ou ser estendidos com correspondência de padrões ou /* como um pega-tudo )

location "/" {
        fastcgi
        root "/cgi-bin/somescript"
}
    
por 21.02.2017 / 09:57