You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTACCESS 403配置:如何阻止含特定字符的URL?

解决WordPress垃圾URL拦截问题

你的规则无效主要是几个语法和逻辑问题,修正方案如下:

原规则的问题

  • 正则表达式错误:^*vn/里的*是正则量词,不能直接放在开头,正确匹配查询字符串以vn/开头的写法是^vn/
  • 多余的爬虫限制条件:RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot) [NC]会让规则只对谷歌、必应机器人生效,但你需要拦截的是所有访问这类垃圾URL的请求,应该去掉这个条件
  • 不必要的REQUEST_URI判断:你的异常URL问题出在查询字符串(?后面的部分),不是请求路径,所以这个条件可以删除

修正后的规则

把以下规则放在WordPress默认的RewriteRule ^index\.php$ - [L]这一行之前(确保拦截优先于WordPress的路由处理):

RewriteEngine On
# 拦截查询字符串以vn/开头的请求
RewriteCond %{QUERY_STRING} ^vn/ [NC]
RewriteRule ^ - [F]

如果要拦截**任意位置包含vn/**的查询字符串,把正则改成vn/即可:

RewriteCond %{QUERY_STRING} vn/ [NC]
RewriteRule ^ - [F]

补充说明

  • [F]标记会返回403 Forbidden状态码,直接拒绝这类请求
  • 确保你的.htaccess文件在WordPress根目录,且服务器启用了mod_rewrite模块
  • 如果是Nginx环境,对应的规则写法是:
if ($args ~* "^vn/") {
    return 403;
}

内容的提问来源于stack exchange,提问作者Arnaud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:45:47