質問

少し前にセットアップしたばかりの 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でます:

ます。http://server.tld/file.php = 1 の実行?

他のヒント

ファイルは、公開Webディレクトリに配置されている場合は、

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;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top