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: http://svn.automattic.com/wordpress/trunk@5446 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
f432ed648a
commit
ee7d9e9e18
|
@ -916,24 +916,30 @@ function wp($query_vars = '') {
|
|||
$wp->main($query_vars);
|
||||
}
|
||||
|
||||
function status_header( $header ) {
|
||||
if ( 200 == $header )
|
||||
$text = 'OK';
|
||||
elseif ( 301 == $header )
|
||||
$text = 'Moved Permanently';
|
||||
elseif ( 302 == $header )
|
||||
$text = 'Moved Temporarily';
|
||||
elseif ( 304 == $header )
|
||||
$text = 'Not Modified';
|
||||
elseif ( 404 == $header )
|
||||
$text = 'Not Found';
|
||||
elseif ( 410 == $header )
|
||||
$text = 'Gone';
|
||||
function get_status_header_desc( $code ) {
|
||||
global $wp_header_to_desc;
|
||||
|
||||
if ( version_compare(phpversion(), '4.3.0', '>=') )
|
||||
@header("HTTP/1.1 $header $text", true, $header);
|
||||
else
|
||||
@header("HTTP/1.1 $header $text");
|
||||
$code = (int) $code;
|
||||
|
||||
if ( isset( $wp_header_to_desc[$code] ) ) {
|
||||
return $wp_header_to_desc[$code];
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
function status_header( $header ) {
|
||||
$text = get_status_header( $header );
|
||||
|
||||
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() {
|
||||
|
|
|
@ -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_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'
|
||||
) );
|
||||
|
||||
?>
|
|
@ -370,6 +370,7 @@ class wpdb {
|
|||
if ( !$this->show_errors )
|
||||
return false;
|
||||
|
||||
status_header( 503 );
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
|
||||
if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false)
|
||||
|
|
Loading…
Reference in New Issue