[Apache] "File does not exist"をエラーログに記録させない方法

他にもよくあるのがこういうやつ。
  • favicon.ico
  • MSOffice
  • _vti_bin
  • myadmin
  • phpMyAdmin
  • scripts
  • sql
  • web
favicon.icoやapple-touch-iconはファビコンを作れば解決なのですが、いちいちファビコン作るのがめんどくさい場合もあるでしょう。
"MSOffice","_vti_bin"みたいな存在しないファイルへのアクセスは、空ファイルを作れば回避できますがそれもイマイチ。

ここはひとつ、Apacheの設定でスマートに解決したいものです。

設定方法

Apacheの設定ファイル(httpd.confとか.htaccessとか)にこのように書けばOKです。
    # 存在しないファイルに対して Goneページを表示
    RedirectMatch gone ^/(MSOffice|_vti_bin|myadmin|mysql|php|phpMyAdmin|scripts|sql|web)$

    RedirectMatch gone ^/apple-touch-icon*
これで当該URLにアクセスすると、ブラウザには下記のような"Gone"ページが表示されて、エラーログには記録されなくなります。
Gone

The requested resource
/mysql
is no longer available on this server and there is no forwarding address. Please remove all references to this resource.

Happy Apaching!

参考

[システム運用] error_log に MSOffice と _vti_bin に関するエラーが記録されるのを回避
カテゴリ: