Lighttpd配置返回状态码的方式

[size=medium][b]如何返回一个404状态码和404页面:[/b][/size]
某些资源不相让用户直接访问,可以直接rewrite到一个404页面,例如:

url.rewrite = ( "^/download/(.*)\.(zip|rar)$" => "/404.htm" )

这样当用户直接访问download下的zip和rar文件时候就会看到一个404.htm的错误页面,但是这样做页面对了,浏览器取得的状态码却还是200,比如爬虫之类的爬到这个地址就会认为这个地址是有效的,怎么让用户能看到404页面,返回的状态码也是404呢?

url.rewrite = ( "^/download/(.*)\.(zip|rar)$" => "/404.html" )
server.error-handler-404 = "/404.htm"

这里注意扩展名,[color=red]404.html[/color]是不存在的,[color=red]404.htm[/color]是真实存在的,所以当rewrite到一个不存在的文件时候lighttpd就会返回404状态码,而server.error-handler-404就会把404.htm的内容返回给浏览器。这样返回的状态码和页面内容就保持一致了。

[size=medium][b]如何返回一个403状态码和403页面:[/b][/size]
我们有时候有些资源不想对某些用户或爬虫、浏览器开放,而且我也不想告诉他资源不存在,而明确告诉他禁止你的访问,这时候就需要返回403状态码,同时需要给用户返回一个403的页面,告诉他没有权限访问这些资源

$HTTP["useragent"] =~ "baidu|Sogou" {
url.access-deny = ("")
server.errorfile-prefix = "/srv/www/htdocs/errors/status-"
}

除了上面这段配置,还需要写一个[color=orange]/srv/www/htdocs/errors/[/color]status-403.html页面,
这样当agent中包含baidu或Sogou字样的时候,lighttpd就会返回一个403状态码,和status-403.html页面的内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值