Каждый сайт, работающий на Apache, по умолчанию настроен так, что все обращения к нему записываются в Access.log. Этот лог полезно иногда читать, чтобы знать, кто и куда обращается и выявлять потенциальные атаки. Но зачастую Access.log настолько большой, что обрабатывать его неудобно и долго, да и хранить на сервере большой файл тоже накладно. Возникла идея не логгировать обращения к CSS, JS и прочей статике, ведь такая информация практически никогда не нужна.
В htaccess или конфиге апача нужно создать переменную среды, которая будет включаться, когда идет обращение к нашей статике. В настройках лога нужно просто указать, что лог должен срабатывать только при наличии этой переменной. Такая простая настройка:
# Не логгировать обращения к статическим файлам SetEnvIf Request_URI "\.(jpg|xml|png|gif|ico|js|css|swf|js?.|css?.)$" dontlog ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog
Думаю, отсюда понятен весь смысл. Берите, копируйте на свой сайт, изменяя по вкусу :) Производительность даже должна немного вырасти, ведь теперь серверу не надо писать в лог, что кто-то там скачал CSS, и он просто отдаст ему этот CSS.