サーバーがcURLからのリクエストに404を送信するように構成されていますか?
-
06-07-2019 - |
質問
クライアントの自動化を行っており、その過程でcURLを介していくつかのphpスクリプトを実行することを計画していました。ただし、ブラウザで正常に機能するURLは、cURLにヒットすると404になります。他の場所で、この方法でcURLをブロックするように設定されているサーバーがあることを言及しました。
これは httpd.conf
で編集できる設定ですか? php.ini
にはないようです。
私のコードは次のようなものです:
$url = "http://site.com/xxx/curl.php?cID=$c->cID&db=$c->db&un=$c->un&/";
echo "$url";
// spoofing FireFox 2.0
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1)
Gecko/20061204 Firefox/2.0.0.1";
$ch = curl_init ($url) ;
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
$res = curl_exec ($ch);
$ res
をエコーすると、デフォルトの404エラーページからコードが取得されます。エコーされた$ urlをコピーしてブラウザーに貼り付けると、ページが正常に表示されます。また、相対パスと完全なサーバーパスを使用してみました。
ユーザーエージェントのなりすましが本日追加され、「cURLではない」と言っても助けになるが、応答に何も変化がないかどうかを確認しようとしました。
これの根本的な原因を突き止める方法についての考えはありますか?
解決
The Planetの親切な人たちは、このアカウントに内部ルーティングの問題があることがわかりました。 / etc / sysconfig / networkのホスト名の設定が不適切で、特に/etc/resolv.confのリゾルバの問題があります。このサイトおよび他の多くのサイトは、最近、あるサーバーから別のサーバーに移行されました。まだ修正されていませんが、それが404の理由です。
ありがとう。
所属していません StackOverflow