如果你想禁止某一客户端对你服务器的访问,比如禁止微信里直接点击的访问,那么应该如何做呢?强大的网页代理软件Apache便可以做到。
本文教程仅针Apache✍️

⚠️
  笔者实现环境在CentOS7下,如若您是其他系统,请自行对照修改即可,区别都不太大。请在开始前确保您已经安装了apache(httpd)服务,并且是在root权限下执行😃

检查apache是否包含rewrite模块

sudo httpd -M | grep rewrite

如若返回了类似 rewrite_module (shared)这样的字眼,那就代表一切okkk,可以进行下一步;如果没有,那么就是因为没有rewrite模块,需要您自行安装,请参考一下方式进行安装:

# 安装rewrite模组,适用于redhat/centos
sudo yum install mod_rewrite
# 安装rewrite模组,适用于debian/ubuntu
sudo a2enmod rewrite
sudo systemctl restart apache2

以上的安装方式仅供参考,笔者并没有实测进行,因为当下的预编译版的apache基本都自带了rewrite.mod,只不过需要您自行打开。

配置httpd.conf,开启禁止访问规则

 假设您想禁止微信的访问你网页下的haha目录,在用户使用微信访问的时候自动跳转至403。通过查询可以得知(可以通过访问(header查询网页)[https://www.whatismybrowser.com/detect/what-is-my-user-agent]便可以快捷查询)微信里面自带的浏览器的客户端的HTTP_USER_AGENT包含了字样MicroMessenger,那么原材料已经齐全,我们可以“上菜”啦

打开httpd.conf文件,其通常在/etc/httpd/conf/下,将以下内容插入至合适的位置:

<Directory /var/www/html/haha>
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTP_USER_AGENT} MicroMessenger [NC]
        RewriteRule ^ - [F]
    </IfModule>
</Directory>

这段代码是用于在 Apache 服务器上配置重写规则,以禁止包含 "MicroMessenger" 字样的客户端访问。

解释如下:

  1. RewriteEngine On: 开启 URL 重写引擎,允许使用重写规则。
  2. RewriteCond %{HTTP_USER_AGENT} MicroMessenger [NC]: 设置一个重写条件,它检查客户端的 User-Agent 头部信息中是否包含 "MicroMessenger" 字样。 [NC] 标志表示不区分大小写。
  3. RewriteRule ^ - [F]: 设置一个重写规则,^ 表示匹配任意 URL,- 表示不做任何修改,[F] 表示返回 403 Forbidden 错误页面。

综合来看,当客户端的 User-Agent 头部信息中包含 "MicroMessenger" 字样时,这个重写规则会拒绝对任何 URL 的访问,返回 403 Forbidden 错误页面。

重启apache让配置生效

sudo systemctl restart httpd

祝成功!如有疑问欢迎讨论🤝✌️💪