最近在搞一个统计访问来源的东东,用Request.ServerVariables["HTTP_REFERER"]上级来源。
发现从:search.tom.com过来,就得到内容了。而像google,baidu等搜索引擎过来,都能正常取到其上一页的访问来源。查了一下,发现HTTP_REFERER不能获取到以下几种类型的来源:
1.从收藏夹链接 
2.单击'主页'或者自定义的地址 
3.利用Jscript的location.href or location.replace() 
4.在浏览器直接输入地址 
5.<%Response.Redirect%> 
6.<%Response.AddHeader%>或<meta http-equiv=refresh>转向 
7.用XML加载地址 想请教各位大位,有其他方法获得以上7种的访问来源吗。我用的是C#开发的,用了里面的Request.UrlReferrer也得不到来源于tom.com的访问地址。请教各位大位。小弟在这里感谢大家。

解决方案 »

  1.   

    不好意思,写错了,从search.tom.com搜索过来,得不到上一页的访问地址。Request.ServerVariables["HTTP_REFERER"]的值为空。
      

  2.   

    Referer表示“链接到这个页面”的URL
    而不是表示,浏览器中转到这个页面之前的那个页面
    ============================
    1.从收藏夹链接 
      这种情况,确实没有Referer
    2.单击'主页'或者自定义的地址
      同上
    3.利用Jscript的location.href or location.replace()
      用脚本直接设置location.href和在地址栏输入是一样的,所以,同上
    4.在浏览器直接输入地址
      同上
    5.<%Response.Redirect%>
      这个没注意过,可能不同浏览器的处理方式不一样
    6.<%Response.AddHeader%>或<meta http-equiv=refresh>转向
      这个也没注意过
    7.用XML加载地址
      如果是用XMLHTTP加载,可以addRequestHeader('Referer',location.herf);来传递Referer给请求的URL。不过大部分程序都没有写这个
      

  3.   

    Request.ServerVariables["HTTP_REFERER"]来自HTTP请求头里面的 Referer节如果浏览器或者其他客户端代理在请求这个URL的时候传递了Referer头的话
    你就能取道,如果没有,那就是没有了
      

  4.   

    谢谢圪圪兄,如果对方网站用location.href跳转到我的网站上,我用这儿用什么方法能获得他的访问网址呢?
      

  5.   

    如果 页面 是post 过来得可以得到,用get方法是不能得到的
      

  6.   

    谢谢楼上的兄弟,我现在已经证实了,对方是用js的location.href跳转到我的网站上,所以我用Request.ServerVariables["HTTP_REFERER"]取不到值,不知道有没有其他的方法。谢谢。