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

如何通过.htaccess实现指定URL的精准301重定向(排除子目录)

解决方案:精准重定向指定URL而排除子目录

方法1:使用RedirectMatch(推荐,无需额外模块)

RedirectMatch 支持正则表达式,可以精准匹配URL的结尾。在你的Apache配置文件或.htaccess里添加这条规则:

RedirectMatch 301 ^/courses/company/$ /courses/
  • ^ 匹配URL的起始位置
  • $ 匹配URL的结束位置
    这样只会精准匹配 /courses/company/,像 /courses/company/123/ 这类带后缀子目录的URL不会被匹配到。

方法2:使用mod_rewrite(适合已有rewrite规则的场景)

如果你的服务器已经启用mod_rewrite,也可以用这条规则:

RewriteEngine On
RewriteRule ^courses/company/$ /courses/ [R=301,L]
  • [R=301] 表示永久重定向
  • [L] 表示这是最后一条匹配规则,避免后续规则干扰

为什么你之前的尝试没生效?

  • 最初的 Redirect 301 /courses/company/ /courses/ 是前缀匹配:只要URL以 /courses/company/ 开头就会触发重定向,所以带子目录的URL也会被匹配。
  • 后来的 Redirect 301 /courses/company/$ /courses/ 无效,是因为Redirect指令不支持正则表达式,$会被当作URL的一部分去查找,实际不存在这个路径,所以不会触发重定向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:45:27