OpenBGP httpd.conf

OpenBGP httpd.conf

如何使用 OpenBSD 将 http 请求重定向到特定页面httpd;例如,我正在提供 OpenBGPd,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 重定向到 www.example.com/cgi-bin/bgplg,而不必精确键入 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"
}

相关内容