目前我们公司是给其他企业做企业门户网站的,用的java,遇到了一个问题:
企业门户网站会使用百度,360,搜狗,谷歌,yandex(俄罗斯的一个浏览器,是一个搜索引擎),Facebook(交友网站,好像不是搜索引擎)
等这几个平台或者搜索引擎进行推广,想记入进入网站的来源,比如是直接输入网址进入的,比如是通过这几个搜索引擎进入的,该怎么写呢,有人做过吗,主要是 yandex和facebook
有没有人有思路的
获取referer 读取来源url,但如果浏览器没传递(来源站点屏蔽)的话就获取不到了,其次http获取不到来源是https的原站来源url
从搜索引擎跳转到你的网站时,HTTP请求头会带referer头部来说明来源,所以你可以在过滤器或者拦截器中去抓取referer就可以知道了。
request.getHeader("referer");
有帮助的话采纳一下哦!
System.out.println("head.referer=" + request.getHeader("referer"));
1.需要用到Nginx的,代理之后还能获取到么?
2.yandex(俄罗斯的一个浏览器,是一个搜索引擎),Facebook(交友网站,好像不是搜索引擎),这两个呢?也能获取到么,有没有做过这两个的来源的人呢
方法一,请求头里获取,评论区里有
方法二,考虑使用爬虫
方法三,分析IP来源
js获取referer,适用于Chrome,Firefox,IE等各种浏览器,javascript获取页面来源网址(即referer,当前页面的上一页页面地址).
注意,referer在PHP中是通过$_SERVER['HTTP_REFERER']来获取的,而js中的referer拼写也不一样,不是referer,而是referrer.
js通过document.referrer来获取页面来源网址.
但有一点需要特别指出,在IE浏览器中,如果页面是通过location.href跳转过来的,那么使用document.referrer是无法获取到referrer的.
为此,你需要重新写一个自定义函数,来执行页面跳转才能保证跳转后能够获取到页面来源网址.代码如下:
要执行页面跳转,请使用自定义函数goTo()来代替location.href="xxxx";
如果页面中没有进行页面跳转,则无须考虑IE兼容性,可以直接使用getReferer()函数来获取referer.
请看使用实例:
yandex和facebook推广的来源:微盟
request.getHeader("referer");