HTML:请求 - 响应重定向

时间:2010-08-31 00:27:33

标签: php html request response redirect

假设我有一个网站www.mySite.com,并且有很多网页的链接为www.mySite.com\contact.phpwww.mySite.com\about.php

当有人输入www.mySite.com\about.php之类的直接链接而不是打开该页面时,如果我想要这样做,那么它应该转到页面myPolicy.php,然后myPolicy.php可能不会引用用户到请求的页面....

如何做到

我认为有一个方法是PHP页面myPolicy.php并且包含\需要它在每个页面的开头,所以我可以决定天气继续请求的页面或重定向到其他地方......

可以吗?

这种东西有更好的方法或最佳实践吗?

2 个答案:

答案 0 :(得分:3)

如果您不需要太多安全性,您可以这样做:

if(empty($_SERVER['HTTP_REFERER']))
    redirect('myPolicy.php');

这个$_SERVER['HTTP_REFERER']无法依赖,因为它是由浏览器提供的,可以轻松更改。

如果您需要保证,您必须考虑更好的策略。例如,您可以使用登录系统。你必须明白,对于服务器,用户点击链接和用户请求URL(写下来)是一回事。你依靠浏览器信息(如$_SERVER['HTTP_REFERER'])只是为了可用性,而不是安全性。

答案 1 :(得分:2)

您可能需要存在cookie,如果不存在则需要重定向,并在myPolicy页面上设置cookie。

但是,我强烈建议不要这样做。您将使您的网站无法访问搜索引擎,在阻止cookie的浏览器(或引用者,如果您这样做)上无法使用,不可缓存且对深层链接有敌意(大多数网站都欢迎)。

这不是一种普遍接受的做法,也不太可能使“使用条款”更具法律约束力。