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

.htaccess第三条URL重写规则无法跳转至category.php问题求助

.htaccess 分类路径重写规则不生效修复方案

问题根因

你第三条规则的正则表达式存在语法错误:$符号前多了多余的转义反斜杠\,导致规则变成匹配路径末尾带字面量$的请求,自然无法命中/some-folder这类普通分类路径。

修复步骤

  • 修正第三条规则的正则语法,删除$前的反斜杠即可,也可以增加捕获组方便分类参数传递:
    原错误规则:
RewriteRule ^/?[^/]+\$ category.php [QSA,L]

修正后规则(兼容带/不带尾斜杠,同时传递分类名参数,方便category.php直接读取分类标识):

RewriteRule ^/?([^/]+)/?$ category.php?cat=$1 [QSA,L]
  • 如果你不需要自动传递分类名,只需要转发请求,最简修复版为:
RewriteRule ^/?[^/]+$ category.php [QSA,L]

附加排查建议

  • 改完规则后先清空浏览器缓存,避免301永久跳转缓存干扰测试
  • 若仍不生效,可以临时开启Apache重写日志查看匹配过程:Apache 2.4版本可在配置中添加LogLevel debug rewrite:trace3,从日志中可以清晰看到每条规则的匹配命中情况
  • 你当前的规则顺序是合理的,前两条匹配带.html后缀的产品、单页请求,不会和分类路径规则冲突,不需要调整顺序

修正后完整代码

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

# WORKING - 匹配产品路径 例如 /some-folder/some-product.html
RewriteRule ^/?([^/]+)/.+\.html$ product.php [QSA,L]

# WORKING - 匹配单页路径 例如 /some-page.html
RewriteRule ^/?[^/]+\.html$ page.php [QSA,L]

# 修复后 - 匹配分类路径 例如 /some-folder 或 /some-folder/
RewriteRule ^/?([^/]+)/?$ category.php?cat=$1 [QSA,L]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:15:05