2010-07-02 50 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分數合併爲一個。你目前的方法很好,不要惹它。