假设我有一个网站www.mySite.com
,并且有很多网页的链接为www.mySite.com\contact.php
和www.mySite.com\about.php
。
当有人输入www.mySite.com\about.php
之类的直接链接而不是打开该页面时,如果我想要这样做,那么它应该转到页面myPolicy.php
,然后myPolicy.php
可能不会引用用户到请求的页面....
如何做到
我认为有一个方法是PHP页面myPolicy.php
并且包含\需要它在每个页面的开头,所以我可以决定天气继续请求的页面或重定向到其他地方......
可以吗?
这种东西有更好的方法或最佳实践吗?
答案 0 :(得分:3)
如果您不需要太多安全性,您可以这样做:
if(empty($_SERVER['HTTP_REFERER']))
redirect('myPolicy.php');
这个$_SERVER['HTTP_REFERER']
无法依赖,因为它是由浏览器提供的,可以轻松更改。
如果您需要保证,您必须考虑更好的策略。例如,您可以使用登录系统。你必须明白,对于服务器,用户点击链接和用户请求URL(写下来)是一回事。你依靠浏览器信息(如$_SERVER['HTTP_REFERER']
)只是为了可用性,而不是安全性。
答案 1 :(得分:2)
您可能需要存在cookie,如果不存在则需要重定向,并在myPolicy页面上设置cookie。
但是,我强烈建议不要这样做。您将使您的网站无法访问搜索引擎,在阻止cookie的浏览器(或引用者,如果您这样做)上无法使用,不可缓存且对深层链接有敌意(大多数网站都欢迎)。
这不是一种普遍接受的做法,也不太可能使“使用条款”更具法律约束力。