BuzzFeed如何进行移动重定向?

时间:2014-11-01 18:47:48

标签: javascript http redirect nginx varnish

我正在尝试将移动重定向添加到我的网站。我想我想要一个完全独立的布局,而不是使用媒体查询。

执行此操作的一种简单方法是让CloudFlare检测并重定向到子域m.example.com

我出于几个原因,我不想使用子域名。

我过去做的另一种方法是使用this mobile detect script进行媒体查询并部分加载页面的各个部分。从长远来看,这被证明是一场噩梦,我不想使用媒体查询。

我注意到buzzfeed.com的方式几乎就是我想要的方式。看起来他们以某种方式检测浏览器或其他东西,然后重定向到显示移动网站的?s = mobile。

我无法分辨这是在服务器上还是在Javascript中完成,或者他们是如何做到的。我假设它在服务器上,因为如果我curl http://www.buzzfeed.com/?s=mobile我收到302响应...我猜是因为curl没有发送看起来像移动的标题。

是否有常见的,经常维护的nginx或varnish脚本来执行此操作?我主要是摸不着头脑,谷歌搜索似乎没有引起很多相关的讨论,除了3年前看起来很弱的片段。

1 个答案:

答案 0 :(得分:2)

您可以使用varnish-devicedetect VCL来完成您正在寻找的所有内容。 installation guide为您提供了有关如何将查询参数添加到请求URL,或将自定义标头添加到发送到后端的请求的示例。这使您可以透明地处理不同类型的客户端。

需要相当多的思考和摆弄以获得所有Vary标题,清除等工作完美无缺,但在示例的帮助下,您应该能够为您设置清漆 - 设备检测。