トラブル克服&実験レポート / WebDevelopment  [WEB制作の正しい作法]  

WEB開発・CG製作でのトラブル解決と実験です。
articleList
27PNG画像による透過処理の実験 / Transparent PNG image processing experiments 26Apache インストールの注意点 / httpd-2.2.19 is Buggy software 25jQuery1.4以上のgetJsonエラーと対策/getJson's Error on jquery ver.1.4 24jQuery エラーの原因は、DivX Webプラグイン 23Lady Gaga の新曲リリースにあわせて、カウントダウンするWEBツール作りました。/ Free download countdown parts for Lady Gaga's new album. 22jQueryで上下スクロールの修正 21URIを引数からタイトルに変更しました。 20WIndows7 64bitOSへIE8-32bitの再インストール 19Illustratorで超高速WEBデザイン 18『Clear Fixの勧め』:CSS2の正しい処方![5]/ブラウザ間の表示差を無くす 17『Clear Bothのブラウザ別仕様』:CSS2の正しい処方![4]/ブラウザ間の表示差を無くす 16『Clear Bothの必要性』:CSS2の正しい処方![3]/ブラウザ間の表示差を無くす 15jQueryプラグインに挑戦^^ 14jQuery実験:EASINGサンプルの応用「スライドメニュー」 13jQuery:実験-上下スクロール 12jQueryプラグインの実験-アニメのEasingサンプル 11『3ピクセルジョグ』:CSS2の正しい処方![2]/ブラウザ間の表示差を無くす 10『マージンの相殺』:CSS2の正しい処方!/ブラウザ間の表示差を無くす 9マルチポストスパム対策決定版!! 8404エラーの不明ファイルURIを取得する。 7サーバーへ連続アクセスの原因究明!! 6Movable Type3.33-ja の文字化けバグ解消。 5FireFox でGoogleMapが表示されない!! 4検索エンジン、インデックス登録にかかる時間は? 3タチの悪いウイルスにやられました。 2偶然発見しました(^^;) / MacIEをマウスでスクロール 1壊れたイラストレータファイルを復活!
digivalley0225
digivalley0225 digivalley0225
8

404エラーの不明ファイルURIを取得する。 [ 2006/12/01 02:27 ]

これまで404エラーファイルをトップページに指定していたために不具合が発生し、それを修正した、とは前に書いてますが…。
具体的にはログファイルに【404】を記録するようにしました。
すると当サイトのある問題点が浮き上がってきました。

下記のログファイルを見てください。 これは11月28日の404エラーを総て検索した結果です。
なんと一日の間に43回も404 notFoundが出ています。
しかもすべてYahoo!でした。
以前までの私なら『こら~!!Yahoo!ふざけるな~!!』となるところですが、連続アクセスの件がありますので(^^;)そこは慎重に調べてみました。(汗)

まずHTTPリクエストを取得するため環境変数の
$ENV{'REQUEST_URI'}をログに書き込むように変更。

ところが、これで取得できるURIは、このリダイレクト先のURI!
つまり本来のクライアントがリクエストしてきた見つからなかったページではなくて、404エラーメッセージを表示するページのURIが取得されちゃうんですよ。
これではどのページにアクセスして404エラーが出たのか解りません。
ここでまた頭を抱え込みました。

そこで大元のサイト『アパッチサーバー』で調べてみました。
するとなんと…!!

※以下はアパッチサーバーサイト[ Apache Core Features.]からの引用

参照:http://httpd.apache.org/docs/1.3/mod/core.html#errordocument

「問題やエラーが発生したときの動作として、 Apache には以下の四つのうち一つの動作を設定することができます。

1. Apache 標準の簡単なエラーメッセージを表示
2. 自分で指定したメッセージを表示
3. 問題やエラーの処理をする為に、自サーバ内の URL-path へリダイレクト
4. 問題やエラーの処理をする為に、外部の URL へリダイレクト

最初のものがデフォルトの動作で、2 番目から 4 番目は、 ErrorDocument ディレクティブにより、HTTP のレスポンスコードと、メッセージか URL を指定することで設定します。

メッセージを記述する場合には、二重引用符 1 文字 (") を最初に付与します。 二重引用符はメッセージには含まれません。 Apache は場合によって、問題やエラーについて付加的な情報を提供します。

URL の場合は、ローカルの URL の指定としてスラッシュで始まる (/) パスか、クライアントが解釈できるフル URL を指定します。
例:
ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/bad_urls.pl
ErrorDocument 401 /subscription_info.html
ErrorDocument 403 "Sorry can't allow you access today

リモート URL (例えば、頭に http と付与した方法) を ErrorDocument に指定するとき、 たとえ文書が同じサーバにあろうとも、ドキュメントがどこにあるかを通知するために、 Apache はリダイレクトをクライアントに送出するということに、注意してください。 これにはいろいろと関連して起こる問題があります。 中でも最も重要なのは、クライアントは元々のエラーステータスコードを受け取らず、 代わりにリダイレクトのステータスコードを受け取るということです。 これにより、ステータスコードを使って URL が有効であるかどうかを決定しようとする ウェブロボットやその他クライアントを、混乱させるかもしれません。 さらに、ErrorDocument 401 にリモートの URL を指定すると、 クライアントは 401 というステータスコードを受け取らないため、 パスワードをユーザに入力要求しなければならないことがわかりません。 従って、"ErrorDocument 401" というディレクティブを使う場合は、 必ずローカルな文書を参照しなければなりません。

…つまり、カスタムメイドのエラーファイルを指定する場合、そのパスを絶対パスで指定するとそのファイルのURIがエラーステータスコードになると書いてあります。
で、元々のエラーステータスコードを受け取るにはスラッシュで始まる (/) 相対パスで指定しないといけないとあります。
いやあ、知らなかった…(^^;)!!!

で、上記の通りに『.htaccess』ファイルを記述して、ようやくですよ。(汗)
ようやく一日に44回もYAHOO!に404エラーを出させた原因が解りました。

なんと!それは『robots.txt』でした。
私のサイトは『.htaccess』で管理しているため『robots.txt』は不要でアップしていないのです。

…う~ん、Yahoo!のロボットは律儀にrobots.txtをチェックしていたんですねえ(^^;)
関心関心(^^;)

さっそくrobots.txtをアップして以後404エラーの頻発を防いだのは言うまでもありません。(^^;)

Date : 2006/12/01 02:27
Posted by valley | | Edit |

avater

jQuery's LATEST NEWS.

@ RSS feeds of jQuery Official Site.

    From jQuery's Official Site.

    data

    ・・・・・・・・・・・・・・・・

    Apache サーバ ドキュメント
    アスキー デジタル用語辞典
    .htaccess実践活用術
    スタイルシート例文辞典
    Beginner's CGI

    ・・・・・・・・・・・・・・・・

    Other Menu