在Tritium中,如何强制链接转到桌面站点?

时间:2013-05-28 15:52:57

标签: moovweb tritium

我正在使用Moovweb SDK动员一个网站,但有些部分我不想为移动设备改变。如何强制这些链接指向原始桌面网站?

2 个答案:

答案 0 :(得分:2)

您可以通过告诉氚您要将给定请求更改为重定向请求,然后重定向到桌面网站来执行此操作。

在简单移动版本1.0.224及更高版本的混合器中,有辅助函数可以执行此操作:

redirect_temporary("www.desktop.com") # 302 redirect.
redirect_permanent("www.desktop.com") # 301 redirect.

如果网址路径中包含“桌面”一词,则以下是临时重定向的示例。

match($path) {
  with(/desktop/) {
     redirect_temporary("www.desktop.com")
  }
  else() {
    // normal transformations.
  }
}

理想情况下,在调用redirect_ *函数之后,你不会再执行任何氚(因为你将无论如何重定向都没有任何意义)。

如果您在www.desktop.com上设置负载均衡器,如果它看到移动用户代理,则会重定向到www.mobile.com。如果是这种情况,那么你将陷入无限重定向循环!

绕过这真的取决于你的设置并且差别很大。虽然我不知道任何现有的解决方案,但一种实验方法是在客户端设置cookie,其值为您不想重定向的URL。如果负载均衡器看到此cookie,并且请求路径与cookie中的值匹配,则会避免重定向。

如果你想完成上述场景,你也可以在氚中这样做:

match($path) {
  with(/desktop/) {
     add_cookie("avoid_redirect", $path, "www.desktop.com")
     redirect_temporary("www.desktop.com")
  }
  else() {
    // normal transformations.
  }
}

然后在您的负载均衡器中,您必须检查avoid_redirect cookie并避免重定向到移动设备,如果cookie的值中的路径是请求的路径。

答案 1 :(得分:0)

如果您仍希望网址为“m.mysite.com”,最好的方法是通过scripts/main.ts

之后:

match($detected_content_type) {
  with(/html/) {

你应该投入:

match($path) {
  with(/non_mobile_page_here/) {
    # do nothing!
  }
  else() {
    # put the rest of the html scope in here. 
  }
}