如何修改 503 htaccess 规则以避免“Googlebot 无法访问您的网站”错误?
Posted
技术标签:
【中文标题】如何修改 503 htaccess 规则以避免“Googlebot 无法访问您的网站”错误?【英文标题】:How can I amend 503 htaccess rule to avoid 'Googlebot can't access your site' error? 【发布时间】:2014-08-07 19:09:37 【问题描述】:我要求网站在建设中返回 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 指令中排除吗?
谢谢
【问题讨论】:
你能把你的 robots.txt 的内容放上去吗? 【参考方案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');
?>
【讨论】:
谢谢。用 RewriteRule !^503\.php$ /503.php [L,NC] 替换原来的行看起来已经成功了,因为它现在“暂时无法访问”,这对于带有 Retry-After 的 503 来说是正确的。以上是关于如何修改 503 htaccess 规则以避免“Googlebot 无法访问您的网站”错误?的主要内容,如果未能解决你的问题,请参考以下文章
浅谈.htaccess文件--避免滥用.htaccess文件