我正在使用Moovweb SDK动员一个网站,但有些部分我不想为移动设备改变。如何强制这些链接指向原始桌面网站?
答案 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.
}
}