※ ChatGPTを利用し、要約された質問です(原文:データベースを使用しているエラーページについて)
データベースを使用しているエラーページについて
・エラーページにデータベースを使用している場合、IMG要素からの不在画像のリクエストをすることで、データベースとの無駄なやりとりが行われてしまう問題
PHPとMySQLでブログサイトを作っています。
リクエストされたファイルが不在だった場合に自前の404エラーページを表示したいと思っていましたが、上の問題で行き詰りました。
エラーページはブログ記事のひとつのような体裁で、正常なリクエスト時と同様に周りには新着記事やらカテゴリなどを表示します。
新着記事やカテゴリ部分は、都度データベースから取得して生成します。
また、不在記事や無効カテゴリへのアクセスだけでなく、画像ファイルへの直接アクセス時に見つからなかった場合にもこのエラーページが表示されます。
「画像ファイルへの直接アクセス」というのは、画像のみをブラウザに表示させるような行為です。ブラウザのアドレスバーにその画像のURLが表示されている状態です。
そして、画像が存在しない時には自前のエラーページが出力されます。
問題は、直接ではないアクセスの場合です。存在しない画像をIMG要素のSRC属性から呼び出そうとした場合にも、データベースへの問い合わせが同様に行われてしまうこと。
IMG要素から呼び出されているのか否かは判断できないため、振り分けることはできなそうです。(もちろん、運営者であればファイル名や引数を使ってIMG要素かどうかを知ることができますが、それはおいてください。)
たしかFaviconを常にとりに行くブラウザもあったと思います。未検証ですが、この場合も上の問題と同様のことが起こるのではないかと思います。
私は利用したことがないのですが、WordPressなどのCMSを使ったサイトで、DBが使われているエラーページを出力するようにしているのを見かけます。ゆえに何か方法があるのではないかなあと思った次第です。
この問題を解決するにはどうしたらよいでしょうか?
(※データベースに限ったことではないと思いますのでこのカテゴリで質問しました)