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

如何通过.htaccess捕获URL最后一个子目录实现重定向?

解决动态子目录的.htaccess重定向问题

嘿,你的需求我get到了——不管http://example.com/my/后面跟着多少层子目录,最终都要重定向到最后那一个子目录的根路径对吧?之前的规则只固定匹配了两层子目录,自然没法应对动态变化的层数,这就是为啥没生效~

给你一个能适配任意子目录层数的正则规则:

RewriteEngine On
RewriteRule ^my/.*/([^/]+)/$ /$1/ [R=301,NC,L]

我来拆解下这个规则的关键逻辑:

  • ^my/.*/:^my精准匹配URL开头的my目录,.*则会匹配中间任意数量的字符(包括多层子目录的斜杠),确保不管中间夹了多少层都能覆盖到
  • ([^/]+)/$:专门捕获最后一个子目录的名称——[^/]+匹配除斜杠外的所有字符(也就是最后那个目录名),/$保证URL以斜杠结尾,和你的需求格式完全对齐
  • /$1/:把重定向目标设置为根目录下的最后一个子目录,$1就是刚才捕获到的目录名
  • 标志说明:R=301是永久重定向(如果只是临时测试可以改成R=302),NC忽略大小写匹配,L表示匹配到这条规则后就停止处理后续规则,避免冲突

小提醒

  1. 先确认你的服务器已经开启了mod_rewrite模块,不然规则没法生效
  2. 测试阶段建议先用R=302临时重定向,避免浏览器缓存301规则导致后续测试出问题
  3. 如果你的URL结尾可能不带斜杠,可以把规则调整为RewriteRule ^my/.*/([^/]+)/?$ /$1/ [R=301,NC,L],加上/?就能适配有无斜杠的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:20:06