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

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

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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/01/07 10:57:25
  • 終了:2013/01/07 14:13:49

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4623ベストアンサー獲得回数19582013/01/07 11:48:00

ポイント80pt

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

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

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

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

その他の回答(1件)

id:sima2 No.1

sima2回答回数6ベストアンサー獲得回数02013/01/07 11:19:02

ポイント20pt

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

id:a-kuma3 No.2

a-kuma3回答回数4623ベストアンサー獲得回数19582013/01/07 11:48:00ここでベストアンサー

ポイント80pt

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

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

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

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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません