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

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

我们有这个检查,但是看不到如何实际发回501的HTTP响应。

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

lighttpd的方式:

使用configuration文件,我只知道大约404错误。 要发送一个“未执行”的响应,你可以使用lighttpd mod Magnet(并安装LUA),然后:

在configuration文件中:

 $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等embedded的dinamic语言,你可以实现错误响应(比如说,501.php),它可以完成.lua脚本的function:

  • 发送适当的http响应(在任何“web”语言中都可行)
  • 打印正确的标题(在任何“网页”语言上都可行)
  • 打印适当的HTML或模板或静态文件(在任何“networking”语言上可行)

并在需要时使用它们。