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

如何配置.htaccess:排除folder及其子目录、文件实现全站重定向?

解决.htaccess排除文件夹及所有子内容的重定向问题

看起来你遇到的问题是想保留/folder及其所有子文件夹、文件不被重定向,但之前的规则没达到预期效果。其实你的初始思路方向是对的,但可以通过更简洁且精准的正则来避免冗余,同时确保所有子内容都被正确排除。

可行的规则方案

直接合并排除条件,用一个正则表达式覆盖/folder本身及其所有子路径:

RewriteEngine On
# 排除 /folder 根目录及其所有子文件夹、文件
RewriteCond %{REQUEST_URI} !^/folder(/.*)?$
RewriteRule ^ https://www.newdomain.com/ [R=301,L]

规则解释

  • ^/folder(/.*)?$ 这个正则的作用是:
    • ^/folder 匹配以/folder开头的路径
    • (/.*)? 是可选的后缀部分:/ 加上任意字符(.*),? 表示这部分可以不存在,所以既匹配/folder本身,也匹配/folder/subfolder、/folder/subfolder/file.jpg等所有子内容
  • 加上!前缀后,就表示不满足这个正则的路径才会执行后续的301重定向

为什么之前的规则没生效?

你之前添加单独的子文件夹排除条件其实是冗余的——初始规则里的!^/folder/.*已经能匹配所有/folder/开头的子路径(包括子文件夹)。可能导致问题的原因有两个:

  1. 浏览器缓存干扰:301重定向会被浏览器强缓存,测试时一定要清空缓存或者用隐私窗口打开
  2. 服务器MultiViews配置:如果服务器开启了MultiViews,可能会导致路径匹配异常,可以在规则顶部加上Options -MultiViews来关闭:
    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/folder(/.*)?$
    RewriteRule ^ https://www.newdomain.com/ [R=301,L]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:54:53