phpのfile_get_contentsであるWebサイトのHTMLを取得していたのですが、

あるときからUserAgentを設定しないと500エラーが返ってくるようになりました。

これは、そのWebサイトのApache側でどのような設定が行われたのでしょうか。考えうることを教えてください。(例:http.confの○○というディレクティブで設定できる、etc)

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/01/07 14:13:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.2

回答回数4972ベストアンサー獲得回数2154

ポイント80pt

可能性として考えられるものをいくつか。

  • リクエスト先が静的な HTML ではなく、PHP などのプログラムが返しており、ある時期からプログラムで UserAgent をチェックするようになった
    ステータスが 500 (Internal Server Error) なので、一番しっくりくる。

  • RewriteCond で UserAgent を確認して、RewriteRule でエラーページに飛ばされている
    ステータス 500 を返すように設定できるけど、何故、わざわざ 500 を選ぶのか、という疑問は残る。

  • SetEnvIf もしくは、BrowserMatch ディレクティブで環境変数を設定して、Deny で拒否する
    これだと、403 (Forbidden) が返されると思うので、可能性は低い。

その他の回答1件)

id:sima2 No.1

回答回数6ベストアンサー獲得回数0

ポイント20pt

UserAgentではじくようになった、ということですね。
はじく設定は以下。
アクセスログの収集制御 – 無駄なリクエストを除外する | 技術系とっかかり備忘録

id:a-kuma3 No.2

回答回数4972ベストアンサー獲得回数2154ここでベストアンサー

ポイント80pt

可能性として考えられるものをいくつか。

  • リクエスト先が静的な HTML ではなく、PHP などのプログラムが返しており、ある時期からプログラムで UserAgent をチェックするようになった
    ステータスが 500 (Internal Server Error) なので、一番しっくりくる。

  • RewriteCond で UserAgent を確認して、RewriteRule でエラーページに飛ばされている
    ステータス 500 を返すように設定できるけど、何故、わざわざ 500 を選ぶのか、という疑問は残る。

  • SetEnvIf もしくは、BrowserMatch ディレクティブで環境変数を設定して、Deny で拒否する
    これだと、403 (Forbidden) が返されると思うので、可能性は低い。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません