私の URL がmysite.com/myuriであるとしましょう。私のサイトmysite.com にローカル uri myuriが存在するかどうかを知るために、世界中で知られている多くの方法があります。
- 最も簡単で最速の方法は次のとおり
$uri_exists = file_exists($_SERVER['DOCUMENT_ROOT']."/myuri")
です。 - 次の方法は次のとおりです。
$headers = @get_headers("http://mysite.com/myuri");
$uri_exists = ($headers[0] == "HTTP/1.1 404 Not Found");
- 別の(前のものより少し速い)方法は次のとおりです。
$curl = curl_init('http://mysite.com/myuri');
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_exec($curl);
$info = curl_getinfo($curl);
$uri_exists = ($info['http_code'] == 200);
curl_close($curl);
これらは私が知っている方法でした。最初の方法は、URI が存在するかどうかではなく、ファイルが存在するかどうかを正確にチェックします。を使用すると、このmod_rewrite
方法は非常に不正確になります。
次の 2 つの方法は ( を使用した場合でも) 正確mod_rewrite
ですが、独自のサイトに対してリモート GET 要求を実行するため速度が遅くなります。また、URI が存在するかどうかを知るためだけに、mysite.com のスクリプトが不必要に実行されるため、非効率的です。さらに、 mysql サーバーへの不要なトラフィックが発生します。
私が質問しようとしているのは、mysite.com の PHP スクリプトで、上記の 3 つの方法よりも効率的で正確な方法を使用して、mysite.com/myuriという URL が存在するかどうかを確認することです。
ありがとうございました
平和...