是否可以在重定向之前删除PHP中的引用者?

问题描述 投票:3回答:4

但由于浏览器是唯一管理引用者的东西,但是我在考虑一个脚本,在将引用者重定向到他们想要去的链接之前删除引用者。

例如,

http://mywebsite.com/url.php?u=http://www.stackoverflow.com

url.php可以删除引用者然后重定向。有可能以任何方式做到这一点吗?

php referrer
4个回答
-1
投票

如果您的重定向是HTTP重定向,那么,不,您无法控制它。

坦率地说,你也不应该。浏览器的业务是形成REFERER值,而不是你的。


9
投票

如果您在网络服务器上运行HTTPS,实际上可以在实践中执行此操作。您需要强制连接通过HTTPS作为中介,因此重定向的顺序将是:

  1. http://mywebsite.com/url.php?u=http://www.stackoverflow.com - >
  2. https://mywebsite.com/url.php?u=http://www.stackoverflow.com - >
  3. http://stackoverflow.com

Most browsers don't send a referrer in cases like that避免泄露私密信息并通过不安全渠道加密到无关的第三方。


无论如何,更新的browsers now support this properly,带有元标记。你可以加:

<meta name="referrer" content="never">

一般情况下,您应该在所有页面上设置此选项,因此客户端和服务器端重定向都可以。


1
投票

引用来自浏览器,您已经表明了解。

这对于您编写快速测试来说非常简单。

从理论上讲,如果您重定向到再次重定向的脚本,则引用者将成为重定向器脚本而不是原始脚本。

如果你问你的脚本是否可以“无形地”重定向 - 那么不,这是在脚本控制之外。


-7
投票

试试这段代码:

$url = 'your target';
header("HTTP/1.1 301 Moved Permanently");
header( "Location: $url" );
© www.soinside.com 2019 - 2024. All rights reserved.