【发布时间】:2011-10-23 02:44:51
【问题描述】:
限制未登录访问者可以看到的页面数量的最佳方法是什么?我们应该检查 $_SESSION['id'] 是否存在,但是如何限制给定时间段内的页数?
搜索引擎消耗大量流量!限制搜索引擎在网站上花费的时间是一种实用的方法吗?例如允许他们每天或每小时只能看到 x 页(因为它们没有被记录)。
【问题讨论】:
标签: php session session-variables session-cookies
限制未登录访问者可以看到的页面数量的最佳方法是什么?我们应该检查 $_SESSION['id'] 是否存在,但是如何限制给定时间段内的页数?
搜索引擎消耗大量流量!限制搜索引擎在网站上花费的时间是一种实用的方法吗?例如允许他们每天或每小时只能看到 x 页(因为它们没有被记录)。
【问题讨论】:
标签: php session session-variables session-cookies
对于您的第一个问题: 使用 Sessions 来保存这些信息。也不要使用将存储在数据库中的自动递增数字之类的 ID,将其转换为很长的无意义字符串,因此有人更改 id 并登录到其他用户帐户的可能性会很小...
关于第二个问题我不知道...对不起...
【讨论】:
回答2:
如果您不关心 SEO,则可以使用 robots.txt 阻止行为良好的搜索引擎。行为不端的搜索引擎将被视为行为不端的人类用户。
如果您确实关心 SEO,那么您积极希望他们访问您的网站!向他们发送 4xx 状态代码或 503 无助于将您的内容编入索引。
但是,Google 网站管理员工具提供了请求crawl rate 的功能。
【讨论】:
304 Not Modified 答案,这会大大减少流量。更不用说提供有关何时再次访问该页面的一些指导来提供您的内容。
在你的框架上添加这样的东西:
if (!isset($_SESSION['sc']))$_SESSION['sc']=0;
然后,在您的结果页面上,添加如下内容:
$_SESSION['sc']++;
$c=$_SESSION['sc'];
if ($c>3) {echo "You have reached your search result limit."; exit;}
对于您的第二个问题:设置会话变量以限制搜索引擎抓取过多将失败。机器人不必存储来自您网站的 cookie,甚至是会话 cookie,这意味着如果机器人不想被跟踪,PHP 将无法跟踪机器人。
我想解决这个问题的方法是确保用户能够在抓取您的搜索引擎之前存储 cookie。
【讨论】: