Я пытаюсь использовать другой файл robots.txt для альтернативных субдоменов, которые я использую для сегментирования домена, чтобы Google не индексировал m1.example.com и m2.example.com.
/etc/httpd/sites-enabled/www.example.com
Alias /robots.txt /var/www/html/robots.txt
....
ServerName www.example.com
ServerAlias m1.example.com m2.example.com
....
DocumentRoot /var/www/www.example.com/public
/var/www/www.example.com/public/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} !=www.example.com [NC]
RewriteRule ^/robots\.txt$ /var/www/html/robots-disallow.txt [L]
....
Когда я нажимаю m1.example.com/robots.txt, он отображает robots.txt, а не robots-disallow.txt.
Если я добавлю правило перезаписи к своему виртуальному хосту в /etc/httpd/sites-enabled/www.example.com, оно будет работать нормально, но не в .htaccess
Я решил проблему, убрав косую черту в .htaccess для ^ / robots.txt $, теперь это выглядит так:
RewriteRule ^robots\.txt$ /var/www/html/robots-disallow.txt [L]
В vhost conf он работал с / в .htaccess после того, как я удалил /, он работал, не знаю, почему, но это решило это для меня.