OpenBSD를 사용하여 http 요청을 특정 페이지로 리디렉션하는 방법은 다음과 같습니다. 예를 들어 OpenBGPd를 다음과 같이 httpd
제공합니다 .bgplg
httpd.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_NAME
bgplg에 필요한 것을 설정하지 않아서 작동하지 않는다는 것입니다. 그러나 이에 의존하지 않거나 이를 적절하게 처리하는 다른 스크립트도 잘 작동합니다(/
독립형으로 처리할 수도 있고 패턴 일치로 확장하거나 /*
포괄적으로 처리 할 수도 있습니다 .)
location "/" {
fastcgi
root "/cgi-bin/somescript"
}