Google BotがPHPスクリプトを実行可能
質問
少し前にセットアップしたばかりの CRON ジョブ php スクリプトがあります。ただし、PHP ファイルが (cron ジョブがアクティブ化されずに) 実行されたことに気付きました。次のエンジンが私のページにアクセスしたことに気づいたため、Google ボットがファイルをクロールしたときにこの問題が発生したようです。
http://www.google.com/bot.html
私の質問は次のとおりです。
1) 私の Web ページをクロールすることによって、スクリプトが実行された可能性はありますか?
2) Google から CRON ファイルを「隠す」にはどうすればよいですか?
3) このファイルを public_html ディレクトリ以外の場所に置いた方が賢明でしょうか?
どうもありがとう!
解決
1)もちろん、それは
2)のrobots.txt参照( http://www.searchtools.com/ロボット/ロボット-txt.html の)
3)はい。しかし、何らかの理由であなたがHTTPデーモンを経由して、それを呼び出すことに依存している場合、あなたは少しトリックを使用することができます。
など。コードの最初の行:
if(!isset($_GET['execute'])
exit;
あなたのcrontabでます:
他のヒント
1)、[はい、それはGooglebotの(または任意の他の訪問者)によって実行することができます。
2)あなたはhref="http://www.robotstxt.org/" rel="nofollow noreferrer"> robots.txtのにあなたの
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 でクエリ文字列を渡します。 変数を使用して PHP スクリプトを呼び出す Cron ジョブ
次のようになるはずです:
http://server.tld/file.php execute=1
また、PHP 条件には右かっこがありません
if(!isset($_GET['execute'])) exit;