将 MoovWeb 用于大型电子商务客户端。他们希望阻止桌面用户访问移动网站。所以基本上,如果用户使用桌面浏览器并尝试访问 (m.site.com),他们将被重定向到 (site.com)。
必须在 Tritium 中执行此操作(很可能在 main.ts 的顶部附近),因为在 JS 运行时,我们将加载该站点两次(一次在 m 中。然后再次在 www 中。)
我很犹豫是否要使用正则表达式来检查 $user_agent,因为如果我们不匹配所有可能的移动代理,并且用户会转到 m。在他们无与伦比的手机上,他们将获得无穷无尽的重定向(m. > www. > m. > www. > m. > ...)。我知道用户代理有非常详细的正则表达式字符串,但是尽管它们很详细,但我们发现某些电话不再匹配的唯一方法是销售损失,这不是一种选择。
这是我最初的 Tritium 测试尝试,它会导致不使用 Android 或 iPhone 的移动用户重定向:
match($host,/^m\./) {
match($user_agent) {
not(/(Android|iPhone)/) {
$newHost = $host
$newHost {
replace(/^m\./,"")
}
$redirect = "http://"+$newHost+$path
export("Location",$redirect)
}
}
}