2011-07-08 47 views
0

我想根據目標網址和引薦網址重定向用戶。說我有一個主頁網址http://www.example.com/,並在該頁面有一堆鏈接指向http://www.example.com/page/x/。當用戶從http://www.example.com/轉到http://www.example.com/page/時,它應該重定向到另一個頁面。但是當用戶通過從http://www.example.com/的鏈接去http://www.example.com/page/x/它不應該重定向。爲了實現這一目標,我在考慮的解決方案是獲取目標網址,以便正確確定用戶是否來自http://www.example.com/,但希望查看http://www.example.com/page/x/。底線是我想阻止訪問http://www.example.com/page/,但不能訪問其子頁面。使用PHP獲取destiniation URL?

+0

引薦網址不可靠,可能很容易被欺騙。這很重要嗎? – spraff

+0

@spraff:就我而言,我認爲這並不重要,因爲它可以是任何頁面。我想確保'http:// www.example.com/page /'不能被訪問,除了它的子頁面。 – jilseego

+0

這是一個頁面rt的虛擬層次結構,或者通過子頁面來表示頁面文件夾中的頁面 – Balanivash

回答

1

你在這裏試圖做的是可怕的壞。

你不能依靠瀏覽器返回的引用者(但它是一個很好的指標)。您可以使用通用JavaScript重寫頁面上的每個鏈接,以附加包含當前頁面的URI編碼URL的CGI變量(但啓用JavaScript後將無法工作)。或者你可以把輸出緩衝區改寫成PHP中的hrefs注入CGI變量。這些都不是微不足道的 - 如果他們打破了你的用戶將無法導航。

但暫時擱置實施 - 您的解決方案似乎是相當荒謬的。

如果問題是

阻止訪問http://www.example.com/page/

但允許請求

http://www.example.com/page/x/

然後在創建index.php文件喜歡的東西....

<?php 
header('Location: /', true, 301); 
?> 

或禁用自動索引你的網絡服務器。

+0

是的,我意識到這並不是很好...... – jilseego

0

由於看起來沒有人可以訪問example.com/page/,您可以在http://www.example.com/page/中使用Header函數將頁面重定向到其他頁面。