通过PHP head()在重定向之前调用URL?

时间:2013-04-15 01:18:01

标签: php cookies http-headers apache2 http-redirect

我需要有3个域名:

  • a.com - 我们的脚本(如下)所在的位置。
  • b.com - 有我们要发布的跟踪脚本
  • c.com - 是我们的最终目的地,如着陆页

因此,广告广告可以链接到http://a.com/track.php?id=1004&r=c.com,其中1004是我的会员ID。调用此脚本时,我需要执行以下操作:

<?php
setcookie('affid', $_GET['id'],time()+60*60*24*365, '/');
head('X-Something: http://b.com/track?id=' . $_GET['id']);
head('Location: http://' . $_GET['r']);

...其中X-Something只是Apache在进行页面重定向之前理解并尝试连接的标题。

麻烦 - 我甚至不知道HTTP头字段允许这个。有可能吗?

最终,会员可以将他的广告创意链接到以下内容:

http://a.com/track.php?id=1004&r=c.com

它会在a.com上删除cookie,在b.com上发布脚本,然后重定向到c.com。那可能吗?如果是这样,我需要使用什么标题而不是我创建的名为X-Something的组合标题?

1 个答案:

答案 0 :(得分:2)

我不知道存在这样的HTTP标头。

相反,另一种解决方案是让PHP请求跟踪脚本。这可以通过file_get_contents()来完成。该方法将返回该URL上可用的任何内容,但在这种情况下,您不需要它,因此可以忽略其返回值。

<?php
setcookie('affid', $_GET['id'],time()+60*60*24*365, '/');
file_get_contents('http://b.com/track?id=' . $_GET['id'] );
head('Location: http://' . $_GET['r']);