我有一个CRON工作php脚本,我刚刚设立不久前。但是,我注意到PHP文件执行(没有cron作业激活)。看来,它发生时,谷歌机器人抓取的文件,因为我注意到以下引擎访问我页面:爬行可能为谷歌机器人执行PHP脚本
1)是否有可能,即:
http://www.google.com/bot.html
我的问题是我的网页,它可能已经执行了脚本?
2)如何从Google隐藏CRON文件?
3)将这个文件放在除public_html目录以外的地方会很聪明吗?
非常感谢!
我有一个CRON工作php脚本,我刚刚设立不久前。但是,我注意到PHP文件执行(没有cron作业激活)。看来,它发生时,谷歌机器人抓取的文件,因为我注意到以下引擎访问我页面:爬行可能为谷歌机器人执行PHP脚本
1)是否有可能,即:
http://www.google.com/bot.html
我的问题是我的网页,它可能已经执行了脚本?
2)如何从Google隐藏CRON文件?
3)将这个文件放在除public_html目录以外的地方会很聪明吗?
非常感谢!
1)当然它是
2)看到的robots.txt(http://www.searchtools.com/robots/robots-txt.html)
3)是。但如果由于某种原因你依靠通过http守护进程调用它,你可以使用一些小技巧。
例如。第一行代码:
if(!isset($_GET['execute'])
exit;
在crontab
:
1)如果文件被放置在公共网页目录,那么,它可能被Googlebot的执行(或任何其他访问者)
2)您可以在robots.txt中为它添加一个Disallow子句。任何普通用户仍然可以通过访问来执行它,如果你这样做。
3)是的。
您也可以使用php-cli。定义如果是cron作业:
define('_DOING_CRON_', true);
然后在PHP文件:
if(_DOING_CRON_ && php_sapi_name() != 'cli'){
die("You cannot get here: this is only cron task.");
}
上述Runifus的回答解决了这个问题对我来说,但是cron作业命令行不与工作?在URL中通过查询字符串,因为我在这里学到:Cron Jobs calling a PHP script with variables
它应该是像这样:
http://server.tld/file.php execute=1
也php的条件缺少一个右括号
if(!isset($_GET['execute'])) exit;