开发者

Can't parse new google urls - HTTP_REFERER doesn't contain parameters anymore

It seems a little odd to my, but alth开发者_JAVA技巧ough everybody knows about the new google search urls (see Google using # instead of search? in URL. Why?) no one has a problem with the HTTP_REFERER.

I'm using the referrer to parse the google string for the searchquery (&q= ) but as this is all in a hash-tag it wont be sent to the server and all i get is "http://www.google.de/".

So do you know a way of getting the query the user searched for, befor landing on my site?


Due to late-2011 Google security changes, this is no longer possible when the search was performed by a signed-in Google user. See:

  • http://googleblog.blogspot.com/2011/10/making-search-more-secure.html
  • http://analytics.blogspot.com/2011/10/making-search-more-secure-accessing.html


Since there are multiple q's in the query string you have to match the "q" parameter globally and take the last one:

/[?|&|#]q=([^&|^#]+)/ig

Get rid of "site:" searches (there are others, but I haven't done them)

/[\+|?|&]?site:([^&|^#])+/g, '');

Then parse the results.

/[\w^'\(\)\{\}]+|"[^"]+"/g

This has been working well for me.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜