Как я могу изменить правило 503 htaccess, чтобы избежать ошибки «Googlebot не может получить доступ к вашему сайту»?

Мне нужно, чтобы веб-сайт возвращал 503, пока он находится в разработке.

Я указываю посетителям на удобную страницу "Скоро появится", но Инструменты Google для веб-мастеров сообщают: "Бот Googlebot не может получить доступ к вашему сайту".

Это текущее правило в .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On

# Allow Access Locally
RewriteCond %{REMOTE_ADDR} !^127.0.0.1

# Prevent 503 for Maintenance Page
RewriteCond %{REQUEST_URI} !/maintenance [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]

# Show Friendly 503
RewriteRule .* http://www.example.com/maintenance/index.php [R=503,L]
</IfModule>

Это хорошо работает для посетителей, но как я могу изменить правило, чтобы Google понял код 503?

В заголовке файла обслуживания у меня есть:

<?php
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: Wed, 18 Jun 2014 01:00:00 GMT');
?>

Я предполагаю, что Google пытается добраться до robots.txt. Следует ли исключить это из инструкции 503?

Спасибо


person MCG    schedule 17.06.2014    source источник
comment
Вы можете разместить содержимое вашего robots.txt?   -  person CMPS    schedule 17.06.2014


Ответы (1)


Замените эту строку:

RewriteRule .* http://www.example.com/maintenance/index.php [R=503,L]

С:

RewriteRule !^503\.php$ /503.php [L,NC]

И внутри /503.php добавьте http_response_code(503) вот так:

<?php
http_response_code(503);
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: Wed, 18 Jun 2014 01:00:00 GMT');
?>
person anubhava    schedule 17.06.2014
comment
Спасибо. Замена исходной строки на RewriteRule !^503\.php$ /503.php [L,NC], похоже, помогла, так как теперь она временно недоступна, что было бы правильно для 503 с Retry-After. - person MCG; 18.06.2014