apple-touch-iconのdoes not existに対応する
このところサーバのアクセスログを眺めていると、延々と
[.] [error] [client XXX] File does not exist: /var/www/html/apple-touch-icon-120x120-precomposed.png [.] [error] [client XXX] File does not exist: /var/www/html/apple-touch-icon-120x120.png [.] [error] [client XXX] File does not exist: /var/www/html/apple-touch-icon-precomposed.png [.] [error] [client XXX] File does not exist: /var/www/html/apple-touch-icon.png
のように出ている。
iPhoneだかのアクセス時にアイコン画像を欲していて、(こちら側では用意していないので)エラーになっていて、特に実害はないかと思って放っていたが、ログは無駄に増えるしアクセスも増えちゃうしで、邪魔なので対応してみた。
方策としては2つ:
- アイコン画像を用意する(ダミーでも可)。
- アクセス時にエラーにする。
ここでは、2.でやってみた。Apacheの設定で「RedirectMatch gone」を使う。
- [Apache] “File does not exist”をエラーログに記録させない方法 ・ DQNEO起業日記
- httpd.confとかにこのように書けばOK
- RedirectMatch gone ^/(MSOffice|_vti_bin|myadmin|mysql|php|phpMyAdmin|scripts|sql|web)$
- RedirectMatch gone ^/apple-touch-icon*
これでサーバを再起動すると、例えばapple-touch-icon.pngにアクセスすると次のような表示になる(これも数が増えると結構な通信量になる気はするが…)。
他の1.の(画像用意)の方法
- サーバログにapple-touch-icon系URLの404エラーが多数記録されるので対策をしてみた記録 – Sakura scope
- iPhone/iPadのホーム画面用アイコンapple-touch-icon.pngをサイトに設定しよう | 編集長ブログ―安田英久 | Web担当者Forum
- エラーログ[/var/www/html/favicon.ico]の大量発生の対策方法、apple-touch-icon-precomposed.png