Skip to content
功能特色定价方案合作伙伴博客帮助关于我们联系我们
免费开始登录
返回博客
guides2026-07-135 分钟阅读

基于地理位置的QR菜单:按访客IP分发不同语言

安塔利亚拉腊180座全包度假村如何通过Cloudflare Workers和CF-IPCountry将同一QR码路由到土耳其语、德语或俄语菜单。

th

thMenu Team

thmenu.com

在安塔利亚拉腊区一家180座的全包度假村,每张桌子都贴着同一个QR码——但慕尼黑来的家庭在早午餐时期望德语,圣彼得堡的情侣在晚餐时期望俄语。一个码,三种体验。

用CF-IPCountry做基于IP的路由

Cloudflare Workers给每个请求附加一个CF-IPCountry头——从IP推导出的ISO 3166-1 alpha-2国家码。Worker读取后做302重定向:DE → /deRU → /ruTR及fallback → /tr。决策在5毫秒内完成,边缘驻留。

把映射表存在KV里既便于管理又便于A/B测试。夏季荷兰客人激增时,管理员加一条NL → /de即可,无需重新部署。

覆盖浏览器语言:这个争议

Accept-Language方案在"讲德语的土耳其人"边界场景失败。一个在柏林生活了20年的土耳其家庭用德语浏览器——在安塔利亚度假时可能仍想要土耳其语菜单。CF-IPCountry表示位置,Accept-Language表示偏好

建议:IP优先,浏览器语言做平局决胜。冲突时把手动切换器放大显示。

手动语言切换作为fallback

地理定位绝不该强制。thMenu在菜单头部展示国旗+语言胶囊,12种语言一键切换。选择会写入cookie,后续扫描时优先。

数据:三个月里12,400次扫描中8%使用了手动切换器——这正是让我们保持GDPR合规的关键。

常见问题

用VPN的客人看到什么语言? CF-IPCountry解析出口IP;走德国VPN会显示德国国旗。手动fallback救场。

漫游运营商报告外国IP怎么办? Turkcell国际漫游IP仍在土耳其CIDR块;未出问题。

会损害SEO吗? 不会。菜单页本就是noindex;Googlebot从美国IP默认落到/tr。

觉得有用?分享给朋友。