.htaccess配置问题:根目录、指定子文件夹分别重定向,部分文件夹忽略
问题原因
你现有配置的第二条规则正则语法错误,RedirectMatch使用PCRE正则规范,不支持(!lv|!ee)这种直接加感叹号的否定匹配写法,才会导致规则未生效。
正确配置
按你的需求调整后的完整规则如下,规则顺序不可调换:
# 根目录请求重定向到URL A,请替换为你实际的URL A地址 RedirectMatch permanent ^/$ https://www.example.com/url-a # se、pl、en三个子文件夹所有请求重定向到URL B RedirectMatch permanent ^/(se|pl|en)(/.*)?$ https://www.example.com/example # 除lv、ee子文件夹外的其余所有请求重定向到目标地址 RedirectMatch permanent ^/(?!lv|ee)(.*)$ https://www.example.com/another-example
规则说明
- 第一条规则用
^/$严格匹配根目录访问,不会和其他子路径规则冲突 - 第二条规则增加了路径开头匹配符
^/,避免误匹配到其他路径中包含se/pl/en字符的内容 - 第三条规则使用否定先行断言
(?!lv|ee),只要请求路径开头不是lv或ee就会命中,完全满足你跳过这两个子文件夹的需求
测试建议
调试阶段建议先把permanent替换为temp使用临时重定向测试,确认规则完全符合预期后再改回永久重定向,避免浏览器缓存旧规则影响测试结果。
内容的提问来源于stack exchange,提问作者Simon Josef Kok
相关产品推荐
相关产品推荐

