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

如何通过.htaccess根据请求路径重写为不同URL?

解决.htaccess URL重写失效问题

你的重写规则失效核心是匹配模式开头的斜杠错误,加上多余的条件判断拖了后腿,下面是修正后的规则和关键说明:

修正后的规则

# 匹配 /rh/xxxxx/yyyyy/ 格式的请求,转发到 record.php
RewriteRule ^rh/([^/]+)/([^/]+)/?$ record.php?a=$1&b=$2 [L,NC]

# 匹配 /rh/xxxxx/ 格式的请求,转发到 user.php
RewriteRule ^rh/([^/]+)/?$ user.php?a=$1 [L,NC]

关键修正点

  • 去掉了开头的斜杠/:.htaccess里的RewriteRule是基于当前目录的相对路径匹配,请求URI的开头斜杠会被自动忽略,原规则里的^/rh/根本匹配不到任何请求。
  • 删除多余的RewriteCond:RewriteRule自身的匹配模式已经能精准对应URL结构,不需要额外的条件判断,简化逻辑。
  • 替换[^/]*为[^/]+:确保匹配至少一个有效字符,避免匹配/rh//这类无效路径。
  • 保留[L,NC]标记:L表示匹配后终止后续规则执行,NC表示不区分URL大小写,符合你的需求。

额外注意事项

  • 确认服务器已开启mod_rewrite模块。
  • .htaccess文件要放在网站根目录(对应example.com的目录)。
  • 服务器配置中AllowOverride需设置为All或FileInfo,确保.htaccess规则生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:33:16