OpenBGP httpd.conf

OpenBGP httpd.conf

OpenBSD를 사용하여 http 요청을 특정 페이지로 리디렉션하는 방법은 다음과 같습니다. 예를 들어 OpenBGPd를 다음과 같이 httpd제공합니다 .bgplghttpd.conf

ext_addr="127.0.0.1"

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

www.example.com/cgi-bin/bgplg를 정확히 입력하지 않고도 www.example.com을 www.example.com/cgi-bin/bgplg로 리디렉션하는 방법

여러 가지 옵션을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 감사해요

답변1

단순 리디렉션을 사용하려면 block return특정 /위치 블록이 필요합니다. 그렇지 않으면 무한 반복됩니다.(위치 블록에는 /와일드카드가 없으므로 자산을 우회할 수 있습니다.)

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

이제 일반적으로 작동하는 또 다른 트릭이 있습니다. root이를 fastcgi에 변수로 전달 DOCUMENT_ROOT하고 존재하는 경우 실행합니다.

부작용은 httpd가 SCRIPT_NAMEbgplg에 필요한 것을 설정하지 않아서 작동하지 않는다는 것입니다. 그러나 이에 의존하지 않거나 이를 적절하게 처리하는 다른 스크립트도 잘 작동합니다(/독립형으로 처리할 수도 있고 패턴 일치로 확장하거나 /*포괄적으로 처리 할 수도 있습니다 .)

location "/" {
        fastcgi
        root "/cgi-bin/somescript"
}

관련 정보