2013-11-22 30 views
0

偶尔我们的服务器会遇到数据库连接问题,我们希望在发生这种情况时临时重定向用户。将用户重定向到维护页面的最佳方式是什么?在计划外维护期间重定向

喜欢的东西

if (!$db) { 
    header("Location: /maintainence/index.php, TRUE, 503"); 
    exit(); 
} 

if (!$db) { 
    header('HTTP/1.1 503 Service Temporarily Unavailable'); 
    header('Status: 503 Service Temporarily Unavailable'); 
    header('Retry-After: 3600'); // in seconds 
    include_once "maintainence/index.php"; 
} 

感谢

+1

只是一个小方面的说明:它是维护而不是维护。 – putvande

回答

1

正确的响应方式是使用相关的HTTP状态码 - 这解决了REST,AJAX和搜索引擎爬行程序的问题 - 但MSIE的某些版本会隐藏您发送给用户的信息if the content is considered too short

header("Location: /maintainence/index.php, TRUE, 503); 

撇开mising报价,你不能做一个重定向(30x)并同时返回一个错误代码。根据第二种方法按内联方式进行操作 - 但添加显式退出!

1

你应该用适当的5xx响应代码(服务器错误)响应,而不是一个重定向(意为“信息你所要求的可以在其他地方找到“,它不能)。您也无法同时重定向并发出5xx响应代码,重定向都是3xx。所以方法#2,在正文中输出带有错误页面的503是正确的响应。