或许这是个比较小众的需求,但是可以满足某些强迫症患者╮(╯▽╰)╭譬如你特别讨厌某数字名字的公司,想让它的用户滚粗你的网站,应该怎么操作呢?
方案有两个,重定向或者伪静态,Caddy都提供了插件,并且都包含在主程序里,无需额外安装,区别在于伪静态只能指向同一域名下的另一个文件(如果是反代那就是被反代的域名),重定向可以指向其他域名,二者的详细用法参看官方文档(redir,rewrite)。
下面说UA,例如将常见的国产浏览器都重定向到度娘,Caddyfile里可以这么写:
redir {
if_op or
if {>User-agent} has 360
if {>User-agent} has MicroMessenger
if {>User-agent} has QQBrowser
if {>User-agent} has BIDUBrowser
if {>User-agent} has Maxthon
if {>User-agent} has MetaSr
if {>User-agent} has LBBROWSER
if {>User-agent} has UBrowser
/ https://www.baidu.com/search/error.html
}
重定向方式没有指定,默认是301,由于用到多个条件,且之间是“或”的关系,if_op需要设为or,UA数据来自这里。
如果想严格一点,譬如仅限Firefox或者Chrome内核浏览器可以访问,可以用not来指定,这时if_op应该是and,也可以不指定,因为默认就是and。
redir {
if_op and
if {>User-agent} not has Firefox
if {>User-agent} not has Chrome
/ https://www.baidu.com/search/error.html
}
rewrite写法大同小异。if可以指定的条件非常丰富,有了这个思路可以实现各种骚操作,比如只重定向http请求、只重定向某些关键词等,全看各位脑洞。
ps.如果你的目标是爬虫,可以直接看nobots插件。
文章评论