LittleFox

  • 博客
  • 收藏
  • 关于
  • 订阅本站
LittleFox
Simple & Naïve
  1. 首页
  2. 挨踢
  3. 正文

Caddy通过User-Agent进行浏览器过滤

2019年9月21日 962点热度 2人点赞 0条评论

或许这是个比较小众的需求,但是可以满足某些强迫症患者╮(╯▽╰)╭譬如你特别讨厌某数字名字的公司,想让它的用户滚粗你的网站,应该怎么操作呢?

方案有两个,重定向或者伪静态,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插件。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: caddy VPS 原创 建站
最后更新:2020年11月10日

Fox

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

公告

由于主题和插件冲突,暂时关闭了评论的第三方登录功能。

分类
  • 挨踢 / 39篇
  • 日常 / 2篇
  • 随想 / 8篇
  • 默认分类 / 1篇

COPYRIGHT © 2022 littlefox.me. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang