如何通过htaccess规则移除含.well-known路径的URL国家前缀
htaccess重写规则解决方案
可以实现无需枚举所有国家前缀的重写规则,参考配置如下:
RewriteRule ^/?[a-z]{2}/(\.well-known/.*)$ $1 [L]
规则说明
- 正则中
^/?适配Apache不同版本的路径匹配差异,兼容路径开头是否带斜杠的场景 [a-z]{2}匹配任意2位小写字母组成的国家/语言前缀,无需手动枚举所有地区编码- 仅当前缀后紧跟
.well-known/路径时才会触发规则,不会影响其他普通路径的正常访问 $1直接重写到捕获的.well-known开头的完整路径,[L]参数表示执行完本条规则后停止后续重写匹配,避免和其他规则冲突
场景适配调整
- 如果存在3位字母的语言/地区前缀(例如
eng、fra这类),可将正则中的[a-z]{2}修改为[a-z]{2,3},即可适配2到3位的字母前缀 - 如果需要将该重写对外暴露为301永久跳转,而不是内部重写,可将规则末尾的
[L]调整为[L,R=301] - 如果地区前缀可能包含大写字母,可增加
NC参数忽略大小写,规则调整为RewriteRule ^/?[a-z]{2}/(\.well-known/.*)$ $1 [L,NC]
适配验证
- 请求
http://example.com/pl/.well-known/other-part会重写为http://example.com/.well-known/other-part - 请求
http://example.com/us/.well-known/other-part会重写为http://example.com/.well-known/other-part - 普通路径
http://example.com/pl/contact不会触发该规则,保持原路径访问
内容的提问来源于stack exchange,提问作者ariel
相关产品推荐
相关产品推荐

