PHP:使用header()更改引用

时间:2012-03-08 11:31:59

标签: php

为方便起见,我的CMS链接到其他网站,我想隐藏引用,以便其他网站看不到我的CMS的目录和查询字符串。我现在有CMS链接到我的服务器上的PHP文件elswhere,然后通过header()重定向到链接,但引用仍然来自我的CMS,而不是来自链接PHP。此外......

header("Referer: nowhere");
header("Location: $_REQUEST[urltolinkto]");

......似乎没有任何改变。无论我把它作为引用者,它总是来自我的CMS,用户实际上点击了链接。

可以更改引用(链接PHP),还是必须使用javascript或元刷新?

3 个答案:

答案 0 :(得分:9)

Referer标头是浏览器发送给服务器的内容。您正在将respose从服务器更改为浏览器,因此不会以这种方式工作(与Cookie标头不同)。据我所知,在发送Referer时,浏览器的行为没有服务器端控制。

答案 1 :(得分:2)

浏览器确实可以选择要发送的引荐来源,但有很多方法可以解决。

HTML5添加了meta referrer,大多数现代浏览器都会尊重它。只需添加

<meta name="referrer" content="no-referrer">

到您网站的头部。

还有重定向服务和其他黑客来隐藏引用(https重定向,iframe tricks和其他)。

答案 2 :(得分:-1)

您不能真正从服务器端更改引用,因为浏览器将它提供给服务器。

但是您可以使用href.li之类的服务,只需使用

 https://href.li/?http://<your-url>

注意:http://之后?很重要,否则它将不会重定向。