如果你想禁止某一客户端对你服务器的访问,比如禁止微信里直接点击的访问,那么应该如何做呢?强大的网页代理软件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" 字样的客户端访问。
解释如下:
RewriteEngine On
: 开启 URL 重写引擎,允许使用重写规则。RewriteCond %{HTTP_USER_AGENT} MicroMessenger [NC]
: 设置一个重写条件,它检查客户端的 User-Agent 头部信息中是否包含 "MicroMessenger" 字样。[NC]
标志表示不区分大小写。RewriteRule ^ - [F]
: 设置一个重写规则,^
表示匹配任意 URL,-
表示不做任何修改,[F]
表示返回 403 Forbidden 错误页面。
综合来看,当客户端的 User-Agent 头部信息中包含 "MicroMessenger" 字样时,这个重写规则会拒绝对任何 URL 的访问,返回 403 Forbidden 错误页面。
重启apache让配置生效
sudo systemctl restart httpd
祝成功!如有疑问欢迎讨论🤝✌️💪