我想知道如何在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:
并在需要时使用它们。