我们使用外发网址将用户引导至外部网站,这是一种不同的艺术风格。
我遇到的问题是twitter feed,我们的重定向会从网址中删除#!/ twitterusername。
我们的php是:
<?
$goto = $_GET['url'];
$referrer = $_SERVER['HTTP_REFERER'];
?>
链接html是:
<div>
<a class="mini green button" href="<?=$goto;?>">Continue to <span style="text-transform:lowercase !important;"><?=$goto;?></span></a>
</div>
传出的网址应为:
http://twitter.com/#!/twitterusername
然而,goto链接变为:
http://twitter.com/
任何想法,我有一个金发的时刻
答案 0 :(得分:0)
可能是因为您没有在传入的URL中正确编码#字符。 #之后的所有内容都是本地锚点,不会发送到服务器。因此,如果您有http://your.site.com/controller?url=http://twitter.com/#!/twitterusername,#之后的所有内容都将被解释为本地锚点,而不会发送到您的服务器。您需要对参数进行URL编码。
答案 1 :(得分:0)
您需要使用urlencode。就是这样。
然后执行类似
的操作$referrer = $_SERVER['HTTP_REFERER'];
echo 'go.php?url=' . urlencode($referrer);
http://twitter.com/#!/twitterusername
将被编码为您需要的http%3A%2F%2Ftwitter.com%2F%23%21%2Ftwitterusername
答案 2 :(得分:0)