Недавно узрел в error.log апача такие сообщения:
[Fri Sep 05 21:35:59 2014] [warn] [client 5.255.253.65] (13)Permission denied: Couldn't read /home/sitecom/.htaccess, closing connection.
[Fri Nov 07 09:38:12 2014] [warn] [client 5.255.253.65] (13)Permission denied: Couldn't read /home/sitecom/.htaccess, closing connection.
[Wed Apr 29 14:46:56 2015] [warn] [client 5.255.253.15] (13)Permission denied: Couldn't read /home/sitecom/.htaccess, closing connection.
[Wed Apr 29 16:09:46 2015] [warn] [client 5.255.253.15] (13)Permission denied: Couldn't read /home/sitecom/.htaccess, closing connection.
[Fri May 01 08:10:35 2015] [warn] [client 5.255.253.15] (13)Permission denied: Couldn't read /home/sitecom/.htaccess, closing connection.
[Wed Jul 22 03:00:24 2015] [warn] [client 178.154.243.111] (13)Permission denied: Couldn't read /home/sitecom/.htaccess, closing connection.
[Sun Jan 17 07:32:17 2016] [warn] [client 141.8.142.30] (13)Permission denied: Couldn't read /home/sitecom/.htaccess, closing connection.
Whois говорит что все вышеперечисленные IP, вызывающие нижеописываемую странность, принадлежат яндексу. Странность заключается в том что при некоторых запросах яндексбота апач почему-то пытается искать .htaccess вне DocumentRoot, причём то же самое время в access.log не наблюдается ничего криминального — сервер в ответ боту отправляет статус 200 и без проблем отдаёт запрашиваемые (по вполне корректным и адекватным URL) ресурсы: html-страницы, картинки и т.п. Вот конфиг этого виртуального хоста:
<VirtualHost *:80>
ServerName site.com
ServerAlias www.site.com
ServerAdmin admin@site.com
DocumentRoot "/home/sitecom/www"
LogLevel warn
LogFormat "%a %l %u [%{%d/%m/%Y %H:%M:%S %z}t] \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" access
ErrorLog "/home/sitecom/log/error.log"
CustomLog "/home/sitecom/log/access.log" access
AssignUserID sitecom sitecom
php_admin_value open_basedir "/home/sitecom/.:."
php_admin_value upload_tmp_dir "/home/sitecom/tmp"
php_admin_value session.save_path "/home/sitecom/tmp"
php_admin_value include_path "/home/sitecom/www/.:."
php_admin_value display_errors "Off"
php_admin_value error_log "/home/sitecom/log/php_error.log"
DirectoryIndex index.htm index.html index.php index.shtm index.shtml
<Directory />
Options -FollowSymLinks +Includes -Indexes
AllowOverride All
</Directory>
<Directory /home/sitecom/tmp>
Order allow,deny
Deny from all
php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp .inc .class
Options -FollowSymLinks -Includes -Indexes
AllowOverride None
</Directory>
<Directory /home/sitecom/log>
Order allow,deny
Deny from all
php_flag engine 0
Options -FollowSymLinks -Includes -Indexes
AllowOverride None
</Directory>
<Files ".*">
Deny from all
</Files>
<Files ~ "\.(bak|cfg|conf|inc)$">
Deny from all
</Files>
<IfModule mod_headers.c>
Header unset Server
RequestHeader set Host "site.com"
</IfModule>
</VirtualHost>
Приведённые выше сообщения в error.log сыпятся лишь при запросах ресурсов сайта яндексботом. Конечно же никакого .htaccess в /home/sitecom/ нету т.к. он лежит в /home/sitecom/www/, как и положено, и запросы от любых других клиентов (в т.ч. спам-ботов и всяческих сканеров, ежедневно посещающих ресурс) такую реакцию у апача не вызывают. Вопрос заключается в том почему апач пытается искать .htaccess вне DocumentRoot, какой запрос/заголовок/etc вызывает данное поведение и как с этим бороться? В интернетах нашёл упоминания точно таких же симптомов при запросах от яндексбота, но нигде нет никакой конкретной информации о причинах этого явления.