MoovWeb:如果他们尝试访问m.site.com

时间:2015-10-15 22:42:48

标签: regex redirect mobile moovweb tritium

将MoovWeb用于大型电子商务客户端。他们希望阻止桌面用户访问移动网站。所以基本上,如果用户使用桌面浏览器并尝试访问(m.site.com),他们将被重定向到(site.com)。

必须在Tritium中进行此操作(很可能在main.ts的顶部附近),因为在JS运行时,我们将加载该站点两次(一次在m。然后再在www。)< / p>

我对使用正则表达式检查$ user_agent的路线犹豫不决,因为如果我们不匹配每个可能的移动代理,并且用户转到m。在他们无与伦比的手机上,他们将获得无限重定向(m。&gt;&gt; m。&gt;&gt;&gt; m。&gt; ...)。我知道用户代理有非常详细的Regex字符串,但是尽管它们很详细,但我们发现某些电话不再匹配的唯一方法是销售损失,这不是一种选择。

以下是我原来的Tritium测试尝试,导致重定向不使用Android或iPhone的移动用户:

match($host,/^m\./) {
    match($user_agent) {
        not(/(Android|iPhone)/) {
            $newHost = $host
            $newHost {
                replace(/^m\./,"")
            }
            $redirect = "http://"+$newHost+$path
            export("Location",$redirect)
        }
    }
}

2 个答案:

答案 0 :(得分:0)

Moovweb提供了开箱即用的客户端和服务器端的重定向。建议您实现具有最少往返次数的服务器端重定向。

这是官方文件: https://moovwebconfluence.atlassian.net/wiki/display/DD/Mobile+Redirection#MobileRedirection-Server-SideRedirection

最佳,

Juan C.

答案 1 :(得分:0)

    match($host,/m./) {
            $newHost = $host
            $newHost {
                replace(/m./,"www.")
            }
            $redirect = "http://"+$newHost+$path
            export("Location",$redirect)
        }

试试这个。希望这对你有用,因为这对我有用。