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


Call a URL before a redirect, via PHP head()?

我需要有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的标题?

我不知道存在这样的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']);