2011-07-08 49 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函数将页面重定向到其他页面。