Netlify重写规则配置咨询:隐藏国家路径访问主域名
完全可行,用Netlify的重写规则就能实现
核心逻辑是通过内部重写(地址栏不变化)将根路径请求导向对应国家的目录,同时保留原目录的直接访问入口。以下是具体配置方式:
方法1:使用_redirects文件(推荐,更简洁)
在项目根目录创建_redirects文件,添加规则:
# 根据GeoIP自动匹配国家目录(地址栏不变) /* /:geoip_country_code/:splat 200! # 如果你的目录名和GeoIP代码不一致(比如用fra代替FR),可以手动指定国家映射: /* /fra/:splat 200! Country=FR /* /usa/:splat 200! Country=US /* /default/:splat 200! # 其他国家默认导向default目录
200!表示强制内部重写,地址栏不会显示国家路径;:geoip_country_code是Netlify内置的GeoIP变量,会自动识别请求的国家代码(如FR、US);- 直接访问
mydomain.com/fra不受影响,因为Netlify会优先返回已存在的目录资源,不会触发根路径的重写规则。
方法2:使用netlify.toml配置
如果习惯用Toml格式管理配置,可在netlify.toml中添加:
# 自动匹配GeoIP的通用规则 [[redirects]] from = "/*" to = "/:geoip_country_code/:splat" status = 200 force = true # 手动指定国家映射的示例 [[redirects]] from = "/*" to = "/fra/:splat" status = 200 force = true conditions = {Country = ["FR"]} [[redirects]] from = "/*" to = "/usa/:splat" status = 200 force = true conditions = {Country = ["US"]}
force = true对应_redirects里的!,确保强制执行重写;conditions = {Country = ["FR"]}用来指定特定国家的匹配规则。
测试技巧
可以通过添加请求头模拟不同国家的访问,验证规则是否生效:
curl -H "x-nf-geoip-country-code: FR" https://mydomain.com
这个请求会被内部重写到/fra目录的内容,地址栏依然显示根路径。
内容的提问来源于stack exchange,提问作者brobrobrobrobro
相关产品推荐
相关产品推荐

