システム開発ブログ

Linux

【Apache】faviconのエラーログを出力させなくする

先日Apacheのエラーログを調査している際
[favicon]や[apple-touch-icon]のURLに対し、
大量の"File does not exist"エラーが記録されていることで目的の箇所を発見するまでに手間取ってしまうという事がありました。

favicon.icoへはページをブックマークする際ブラウザがサーバーへ自動でリクエストしますが、 FireFoxなど一部のブラウザでは読み込み時にもリクエストを行うためにfaviconが設置されていないとFile does not existエラーがその度に書き込まれてしまいます。

また、apple-touch-iconへはiOSデバイスがサーバーへ自動でリクエストすることで設置のないファイルに対して同様にFile does not existが発生します。

システム自体に影響のあるエラーメッセージではないため今まで対応していなかったのですが、 前述の件もあった為対策をすることにしました。

方法としては主に二通りあります。

①favicon(apple-touch-icon)を作成してサーバー上へ設置

そもそもリクエストされたファイルが存在しないのが原因のエラーなので、 ファイルを設置することで回避するという方法です。


下記のリンク先ではさらにApacheのmod_rewriteを使うことで、 複数パターンのリクエストに対して設置ファイルは1つで済むようにしています。

参考URL:サーバログにapple-touch-icon系URLの404エラーが多数記録されるので対策をしてみた記録

②httpd.confに404へリダイレクトする設定を追加

favicon.ico(apple-touch-icon)が無い場合404へリダイレクトする様に設定することで、 エラーログへの書き出しを抑制するという方法です。


私は今回はこちらの方法で対応し無事解決しました。
以下の設定内容をhttpd.confへ追記します。

Redirect 404 /favicon.ico

<Location /favicon.ico>
    ErrorDocument 404 "No favicon"
</Location>

Redirect 404 /apple-touch-icon-precomposed.png

<Location /apple-touch-icon-precomposed.png>
    ErrorDocument 404 "No apple-touch-icon-precomposed"
</Location>

Redirect 404 /apple-touch-icon.png

<Location /apple-touch-icon.png>
    ErrorDocument 404 "No apple-touch-icon"
</Location>

またこれらの他にも、エラーログ自体の設定を変更し 拡張子.icoのファイルについてはログ出力しない様にする方法などもあるようです。

放置しているとエラーログの視認性が悪くなるうえ、 何よりパフォーマンスに影響を及ぼす可能性もあるので未対策の場合には注意が必要ですね。

この記事に関連する記事の一覧


システム開発ブログ

Twitterでilovex_officialをフォローしてください

カテゴリー

以前の部署別ブログ

ページのトップ