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

如何在.htaccess中仅允许匹配单个正斜杠?

调整RewriteRule规则以仅匹配单斜杠结尾的URL

原规则:

RewriteRule ^([a-z]+)/$ index.php?lang=$1 [L,QSA]

问题:Apache的mod_rewrite默认会将请求中的多个连续斜杠合并为单个,导致/en//////////////这类多斜杠URL也会被匹配。

调整后的规则

RewriteCond %{THE_REQUEST} ^[A-Z]+\s/([a-z]+)/\s
RewriteRule ^([a-z]+)/$ index.php?lang=$1 [L,QSA]

规则解释

  • %{THE_REQUEST}变量保存浏览器发送的原始请求内容(比如GET /en/ HTTP/1.1),不会被Apache合并斜杠,通过它能精准匹配仅含单个结尾斜杠的URL。
  • 前置的RewriteCond确保只有原始请求路径为/小写字母/格式的请求,才会进入后续RewriteRule处理。
  • 保留原RewriteRule完成URL重写逻辑。

验证结果

  • 预期匹配:/en/ → 正常匹配并跳转至index.php?lang=en
  • 非预期匹配:/en////////////// → 不满足RewriteCond条件,不会被匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:59:57