问题
I have an e-mailer script that send messages to Yahoo or Gmail with a link on it, a link that will return back to my website when it is clicked.
I need to get the HTTP_REFERER from Yahoo or Gmail. in my site I have
echo $_SERVER["HTTP_REFERER"];
expecting something to return on it. but its empty.
回答1:
This seems to be by design. It is possible to remove the header using Javascript shenanigans. From Google's docs on GMail privacy:
Minimized "referrer" header information. When you click on links in messages, the web browser that loads contains a referrer header. When you click on links in Gmail, Google takes steps to eliminate this referrer header, preventing others from knowing that you clicked on a link from an email.
回答2:
You have no control over HTTP_REFERER. What you see is what the client passed.
回答3:
The browser might not provide HTTP_REFERER so you cannot rely on it - Secondly, some software firewalls (like Norton Internet Security) have features to strip out such information...
来源:https://stackoverflow.com/questions/4264846/how-to-get-the-http-referer-from-a-yahoo-or-gmail