良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

Lighttpd配置返回状态码的方式

如何返回一个404状态码和404页面 
某些资源不相让用户直接访问,可以直接rewrite到一个404页面,例如: 
Lighttpd代码
  1. url.rewrite = ( "^/download/(.*)\.(zip|rar)$" => "/404.htm" )  


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

  2. server.error-handler-404 = "/404.htm"  


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

如何返回一个403状态码和403页面: 
我们有时候有些资源不想对某些用户或爬虫、浏览器开放,而且我也不想告诉他资源不存在,而明确告诉他禁止你的访问,这时候就需要返回403状态码,同时需要给用户返回一个403的页面,告诉他没有权限访问这些资源 
Lighttpd代码  收藏代码
  1. $HTTP["useragent"] =~ "baidu|Sogou" {  

  2.     url.access-deny = ("")  

  3.     server.errorfile-prefix = "/srv/www/htdocs/errors/status-"  

  4. }  


除了上面这段配置,还需要写一个/srv/www/htdocs/errors/status-403.html页面, 
这样当agent中包含baidu或Sogou字样的时候,lighttpd就会返回一个403状态码,和status-403.html页面的内容。


标签: lighttpdlinux404conf

作者:良玉 分类:lighttpd 浏览:588 评论:0
留言列表
发表评论
来宾的头像