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

如何配置RewriteRule仅对Parent1下路径按首目录规则实现301重定向

你之前的规则失效的核心原因是:如果是在.htaccess文件中配置重写规则,RewriteRule匹配路径时会自动去除开头的斜杠,你写的^/Parent1/前缀匹配不到任何请求,所以规则无法触发。

针对你的需求:将Parent1目录下任意层级的子资源,重定向到/allparents/下对应的最后一级路径,对应规则分两种场景:

  1. 规则写在站点根目录的.htaccess文件中
RewriteRule ^Parent1/(?:.*/)?([^/]+)/?$ /allparents/$1 [R=301,NC,L]
  1. 规则写在Apache主配置的VirtualHost段中
RewriteRule ^/Parent1/(?:.*/)?([^/]+)/?$ /allparents/$1 [R=301,NC,L]

规则说明

  • 前缀限定仅匹配Parent1开头的路径,不会影响Parent2等其他目录的正常访问
  • (?:.*/)?为非捕获组,匹配Parent1之后任意层数的中间目录,不会占用$1的捕获位置
  • ([^/]+)捕获路径最后一段的资源名,对应你要保留的Child部分
  • 末尾的/?兼容路径带/和不带/的两种访问形式

调试注意

调试规则时建议先将R=301改为R=302临时重定向,避免永久重定向被浏览器缓存导致修改后看不到效果,确认规则符合预期后再改回301即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:45:05