我正在使用Moovweb SDK开发一个网站,但有一些部分我不想为移动设备更改。如何强制这些链接指向原始桌面站点?
发布于 2013-05-30 14:31:17
您可以通过告诉tritium您想要将给定请求更改为重定向请求,然后重定向到桌面网站来完成此操作。
在混音器simple-mobile版本1.0.224及更高版本中,有帮助函数可以做到这一点:
redirect_temporary("www.desktop.com") # 302 redirect.
redirect_permanent("www.desktop.com") # 301 redirect.如果URL路径中包含单词“桌面”,下面是一个临时重定向的示例。
match($path) {
with(/desktop/) {
redirect_temporary("www.desktop.com")
}
else() {
// normal transformations.
}
}理想情况下,在调用redirect_*函数之后,您不会再执行任何tritium (没有任何意义,因为您无论如何都要重定向)。
这里要注意的一点是,如果您在www.desktop.com上设置了负载均衡器,以便在看到移动用户代理时重定向到www.mobile.com。如果是这样的话,你会陷入无限的重定向循环中!
绕过这一点实际上取决于您的设置,并且差异很大。虽然我不知道任何现有的解决方案,但一个实验性的方法是在客户端设置一个cookie,其值是您不希望重定向的URL。如果您的负载均衡器看到此cookie,并且请求路径与cookie中的值匹配,则会避免重定向。
如果你想完成上面的场景,你也可以像这样在3H中这样做:
match($path) {
with(/desktop/) {
add_cookie("avoid_redirect", $path, "www.desktop.com")
redirect_temporary("www.desktop.com")
}
else() {
// normal transformations.
}
}然后,在负载均衡器中,如果cookie的值中的路径是所请求的路径,则必须检查avoid_redirect cookie并避免重定向到移动设备。
发布于 2013-05-30 08:29:40
如果您仍然希望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.
}
}https://stackoverflow.com/questions/16796380
复制相似问题