New status_header code, and WP-DB bail() errors send a 503 Service Unavailable. see #2409
Also, the new header code to text array has 302 as Found. fixes #4183 git-svn-id: https://develop.svn.wordpress.org/trunk@5446 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
e33cb11a4a
commit
3deb0fe500
|
@ -916,24 +916,30 @@ function wp($query_vars = '') {
|
||||||
$wp->main($query_vars);
|
$wp->main($query_vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
function status_header( $header ) {
|
function get_status_header_desc( $code ) {
|
||||||
if ( 200 == $header )
|
global $wp_header_to_desc;
|
||||||
$text = 'OK';
|
|
||||||
elseif ( 301 == $header )
|
$code = (int) $code;
|
||||||
$text = 'Moved Permanently';
|
|
||||||
elseif ( 302 == $header )
|
if ( isset( $wp_header_to_desc[$code] ) ) {
|
||||||
$text = 'Moved Temporarily';
|
return $wp_header_to_desc[$code];
|
||||||
elseif ( 304 == $header )
|
} else {
|
||||||
$text = 'Not Modified';
|
return '';
|
||||||
elseif ( 404 == $header )
|
}
|
||||||
$text = 'Not Found';
|
}
|
||||||
elseif ( 410 == $header )
|
|
||||||
$text = 'Gone';
|
|
||||||
|
|
||||||
if ( version_compare(phpversion(), '4.3.0', '>=') )
|
function status_header( $header ) {
|
||||||
@header("HTTP/1.1 $header $text", true, $header);
|
$text = get_status_header( $header );
|
||||||
else
|
|
||||||
@header("HTTP/1.1 $header $text");
|
if ( empty( $text ) ) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
if ( version_compare( phpversion(), '4.3.0', '>=' ) ) {
|
||||||
|
return @header( "HTTP/1.1 $header $text", true, $header );
|
||||||
|
} else {
|
||||||
|
return @header( "HTTP/1.1 $header $text" );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function nocache_headers() {
|
function nocache_headers() {
|
||||||
|
|
|
@ -35,4 +35,50 @@ $is_IE = ( $is_macIE || $is_winIE );
|
||||||
$is_apache = ((strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) || (strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false)) ? true : false;
|
$is_apache = ((strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) || (strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false)) ? true : false;
|
||||||
$is_IIS = (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false) ? true : false;
|
$is_IIS = (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false) ? true : false;
|
||||||
|
|
||||||
|
$wp_header_to_desc = apply_filters( 'wp_header_to_desc_array', array(
|
||||||
|
100 => 'Continue',
|
||||||
|
101 => 'Switching Protocols',
|
||||||
|
|
||||||
|
200 => 'OK',
|
||||||
|
201 => 'Created',
|
||||||
|
202 => 'Accepted',
|
||||||
|
203 => 'Non-Authoritative Information',
|
||||||
|
204 => 'No Content',
|
||||||
|
205 => 'Reset Content',
|
||||||
|
206 => 'Partial Content',
|
||||||
|
|
||||||
|
300 => 'Multiple Choices',
|
||||||
|
301 => 'Moved Permanently',
|
||||||
|
302 => 'Found',
|
||||||
|
303 => 'See Other',
|
||||||
|
304 => 'Not Modified',
|
||||||
|
305 => 'Use Proxy',
|
||||||
|
307 => 'Temporary Redirect',
|
||||||
|
|
||||||
|
400 => 'Bad Request',
|
||||||
|
401 => 'Unauthorized',
|
||||||
|
403 => 'Forbidden',
|
||||||
|
404 => 'Not Found',
|
||||||
|
405 => 'Method Not Allowed',
|
||||||
|
406 => 'Not Acceptable',
|
||||||
|
407 => 'Proxy Authentication Required',
|
||||||
|
408 => 'Request Timeout',
|
||||||
|
409 => 'Conflict',
|
||||||
|
410 => 'Gone',
|
||||||
|
411 => 'Length Required',
|
||||||
|
412 => 'Precondition Failed',
|
||||||
|
413 => 'Request Entity Too Large',
|
||||||
|
414 => 'Request-URI Too Long',
|
||||||
|
415 => 'Unsupported Media Type',
|
||||||
|
416 => 'Requested Range Not Satisfiable',
|
||||||
|
417 => 'Expectation Failed',
|
||||||
|
|
||||||
|
500 => 'Internal Server Error',
|
||||||
|
501 => 'Not Implemented',
|
||||||
|
502 => 'Bad Gateway',
|
||||||
|
503 => 'Service Unavailable',
|
||||||
|
504 => 'Gateway Timeout',
|
||||||
|
505 => 'HTTP Version Not Supported'
|
||||||
|
) );
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -369,7 +369,8 @@ class wpdb {
|
||||||
function bail($message) { // Just wraps errors in a nice header and footer
|
function bail($message) { // Just wraps errors in a nice header and footer
|
||||||
if ( !$this->show_errors )
|
if ( !$this->show_errors )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
status_header( 503 );
|
||||||
header('Content-Type: text/html; charset=utf-8');
|
header('Content-Type: text/html; charset=utf-8');
|
||||||
|
|
||||||
if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false)
|
if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false)
|
||||||
|
|
Loading…
Reference in New Issue