在 Lighttpd Web 服务器中设置响应头

在 Lighttpd Web 服务器中设置响应头

我想知道当有人尝试通过非 SSL 访问我们的 api.mydomain.com 时,如何在 Lighttpd Web 服务器中发回 501(未实现)的 HTTP 响应。

我们进行了检查,但是不知道如何实际发回 501 的 HTTP 响应。

$HTTP["host"] =~ "api\.mydomain\.com$" {
        $HTTP["scheme"] == "http" {
                //// HOW DO WE SEND BACK HTTP RESPONSE 501
        }
}

答案1

lighttpd 方式:

使用配置文件,我只知道 404 错误。要发送“未实现”响应,您可以使用 lighttpd mod Magnet(并安装 LUA),然后:

在配置文件中:

$HTTP["host"] =~ "api\.mydomain\.com$" {
        $HTTP["scheme"] == "http" {
            magnet.attract-physical-path-to = ("/path/to/501.lua")
        }
}

注意,“/path/to/501.lua” 应该可以被 lighttpd 读取。然后在 501.lua 文件中:

lighty.content = { { filename = "/path-to-your/501.html" } }
lighty.header["Content-Type"] = "text/html" 
return 501

仅发送 501 就很困难...对吧?

替代方法:

如果你已经有一个插入了 fastcgi 等的动态语言,你可以实现错误响应(比如说 501.php),它执行 .lua 脚本所做的操作:

  • 发送正确的 http 响应(适用于任何“网络”语言)
  • 打印正确的标题(适用于任何“网络”语言)
  • 打印正确的 html 或模板或静态文件(适用于任何“网络”语言)

并在需要的地方使用它们。

相关内容