重定向人类用户,但不是Facebook抓取工具

时间:2014-02-15 04:06:18

标签: django facebook redirect facebook-sharer

我有一个简单的Django网站,有2页。这有点像那些愚蠢的嗡嗡声测验。有一个问题页面(www.mypage.com)和一个结果页面(www.mysite.com/results/myResults)。我正在尝试使用facebook分享按钮来推动社交分享。我希望人们分享结果页面(例如“我得到了这个结果,你怎么样?”),但我需要点击这些共享链接的传入用户重定向到主要问题页面。

我尝试添加网址参数www.mysite.com/results/myResults?fromShare = T并使用视图将这些参数重定向到主页面。但是,facebook抓取工具也会被重定向,因此共享内容最终成为主页面,而不是个性化结果页面。

tl; dr :如何重定向传入的人类用户,而不是重定向facebook抓取工具?理想情况下,我想在django视图中这样做,而不是.htaccess。

2 个答案:

答案 0 :(得分:2)

Facebook用户代理将是其中之一:
facebookexternalhit / 1.1(+ http://www.facebook.com/externalhit_uatext.php
facebookexternalhit / 1.0(+ http://www.facebook.com/externalhit_uatext.php
facebookexternalhit / 1.1(+ https://www.facebook.com/externalhit_uatext.php
facebookexternalhit / 1.0(+ https://www.facebook.com/externalhit_uatext.php

request.META['HTTP_USER_AGENT']中查找并重定向。

答案 1 :(得分:1)

在您看来,请查看request.META['HTTP_USER_AGENT'],将其与Facebook抓取工具进行比较,如果不匹配则重定向。如果匹配,请提供您的页面模板。