2012-11-21 58 views
2

對不起,問題標題很混亂/模糊。我無法想出一個更好的。確定(在下一頁中)哪個定位標記被點擊(前一頁中的定位標記)

局勢

假設一個頁面abc.php有一組錨標記。

<a href="xxx.php">AAA</a> 
<a href="xxx.php">BBB</a> 
<a href="xxx.php">CCC</a> 

如果我點擊BBB,有沒有辦法找出裏面xxx.phpBBB是這帶來了在這裏的鏈接?以同樣的方式,如果CCC被點擊,是否可以在xxx.php中知道重定向是因爲CCC鏈接而發生的?

簡而言之,我正在尋找一組鏈接重定向到單個頁面,並在該頁面中確定哪個鏈接導致重定向。

PS:我知道我能做到這一點使用query strings但我寧願以避免他們儘可能。此外,我也希望它只用於PHP(如果可能的話,即服務器端;像$_SERVER['HTTP_REFERER'])。

回答

1

如果您不想在客戶端上公開查詢字符串(我沒有看到避免它們出現問題的原因),您希望在服務器端執行所有操作,您可以嘗試使用Apache的重寫規則。

喜歡的東西

<a href="xxx_aaa">AAA</a> 
<a href="xxx_bbb">BBB</a> 
<a href="xxx_ccc">CCC</a> 

和重寫就像在你的.htaccess規則:

RewriteRule ^xxx_(.*)$ xxx.php?id=$1 

而且你的腳本中,你可以知道它與

$_REQUEST['id'] 

是來了,最後你使用的是查詢字符串,即使你沒有公開它,但像$ _SERVER ['HTTP_REFERER' ] 不管用。

+0

+1。這聽起來不錯。但是,如果沒有更好的答案,我會保留這個作爲最後的手段 – asprin

+0

由於沒有更多的答案,我會走你的解決方案。 – asprin