繁体   English   中英

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

[英]In Tritium, how can I force a link to go to the desktop site?

我正在使用Moovweb SDK来动员网站,但是有些部分我不想更改以用于移动设备。 如何强制这些链接指向原始桌面站点?

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

在混音器简单移动版本1.0.224及更高版本中,有一些辅助功能可以做到这一点:

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

如果URL路径中包含单词“ desktop”,则这是一个临时重定向的示例。

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

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

遇到的一个问题是,如果您在www.desktop.com上设置了负载均衡器,并在看到移动用户代理后将其重定向到www.mobile.com。 如果是这种情况,那么您将陷入无限的重定向循环中!

绕过这个问题确实取决于您的设置,并且差异很大。 尽管我不知道有任何现有的解决方案,但是一种实验性的方法是在客户端设置cookie,其值为您不希望重定向的URL。 如果您的负载平衡器看到此cookie,并且请求路径与cookie中的值匹配,则它将避免重定向。

如果您想完成上述情况,则也可以像这样在t中执行此操作:

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

然后,在负载平衡器中,如果Cookie值中的路径是请求的路径,则必须检查prevent_redirect cookie并避免重定向到mobile。

如果您仍然希望URL为“ 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. 
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM