有时我们的服务器会遇到数据库连接问题,我们希望在发生这种情况时临时重定向用户。将用户重定向到维护页面的最佳方法是什么?
像
这样的东西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";
}
由于
答案 0 :(得分:1)
您应该使用适当的5xx响应代码(服务器错误)进行响应,而不是使用重定向(这意味着“您请求的信息可以在其他地方找到”,但它不能)。您也无法同时重定向和发出5xx响应代码,重定向全部为3xx。因此,方法#2,输出503在主体中的错误页面,是正确的响应。
答案 1 :(得分:1)
正确的响应方式是使用相关的HTTP状态代码 - 这解决了REST,AJAX和搜索引擎爬虫的问题 - 但是MSIE的某些版本会隐藏您发送给用户if the content is considered too short的信息。
header("Location: /maintainence/index.php, TRUE, 503);
除了mising引用之外,您不能进行重定向(30x)并同时返回错误代码。按照第二种方法进行内联 - 但是添加一个明显的退出!