Lighttpd 阻止特定 URL 的 wget 用户代理
一位常客读者问了一个问题:
我的网站由 Lighttpd 网络服务器提供支持。我想阻止我的整个 domain.com 站点的 Wget 用户代理,但 /downloads/ url 部分除外。如何配置 lighttpd?
您需要使用 $HTTP 文件中的 useragent 和 url 组合。只需打开 lighttpd.conf 文件并附加以下代码即可。
Lighttpd 阻止用户代理 wget 配置
# vi /etc/lighttpd/lighttpd.conf
附加配置指令如下:
$HTTP["useragent"] =~ "Wget" { $HTTP["url"] !~ "^/download($|/)" { url.access-deny = ( "" ) } }
在哪里,
- $HTTP[“useragent”] : 匹配用户代理,例如 Wget
- $HTTP[“url”]:匹配 url 部分,例如 /download/*。如果有嵌套块,则这必须是最内层的块。
- =~:Perl 样式正则表达式匹配
- !~:Perl 样式正则表达式不匹配
只需重新启动网络服务器,输入:
# /etc/init.d/lighttpd restart
现在用户可以在 http://domain.com/download/* URL 上运行 wget,但不能在 http://domain.com/file.html 或 http://domain.com/dir/file 上运行