2010-07-02 49 views
0

我目前在我的网站上使用register.php?referal = gamestand,以便当用户通过referal网站访问我的网站时,我可以跟踪有多少玩家从该地点注册。URL重写删除参数,但发送它

referal = gamestand将使用echo $ _GET ['code'];自动填充注册过程中的输入文本字段;

问题是...在谷歌我有这些referals的链接负载,我想301他们到我的register.php页面合并搜索引擎优化分为一个,并最终删除这些愚蠢的register.php?代码=来自谷歌的游戏风格链接。

我有这个重写规则...它删除了?code = gamestand位,但它实际上并没有传递参数,可能是因为它重定向和不发送任何东西?

RewriteCond %{QUERY_STRING} ^(.*)code(.*)$ 
RewriteRule ^(.*)$ http://localhost/mywebsite/httpdocs/register.php? [R=301,L] 

它将改变register.php?代码= gamestand到register.php但正如我所说,$ _ GET [“代码”]现在是空的,我又回到了起点!

如果有人知道任何东西,请欣赏任何帮助......谢谢! Dom

+1

不是HTTP引用者已经是头字段吗?你需要将它作为参数传递吗? – Pace 2010-07-02 20:18:42

+0

好主意......我不知道为什么我以前没有试图抓住这一点,说实话。 – Intellix 2010-07-13 17:36:05

回答

0

您可以将引用链接存储在会话变量中,然后重定向到register.php而无需代码。您的网址不会再包含该代码,但可以通过该会话进行访问。

session_start(); 
if (isset($_GET['code'])) { 
    $_SESSION['code'] = $_GET['code']; 
    header('Location: register.php'); 
    exit; 
} 

... 

echo $_SESSION['code']; 
0

将这些Url重定向到同一个Url可能不会将您的SEO分数合并为一个。你目前的方法很好,不要惹它。