元素星在线活动查询中心

元素星在线活动查询中心

shape
  • Home
  • 玩家问答
  • 解决国内服务器WordPress无法更新的问题

解决国内服务器WordPress无法更新的问题

  • 2026-08-13 02:08:54
  • admin

WordPress官方对国内访问做了限制,导致有时候无法更新WordPress版本、插件、主题等,更新的时候可能会遇到报错HTTP ERROR 524的情况。

本文通过自定义反代来解决问题,需要Cloudflare账号或国外服务器和域名。

使用Cloudflare Workers

需要有Cloudflare账号并且托管了域名。

1、登录Cloudflare后,在构建 – 计算 – Workers 和 Pages – 创建应用程序。

2、选择“从Hello World!开始”

3、部署成功后点进项目后选择“编辑代码”

4、左侧替换为下面代码后点击“部署”

const ALLOWED_HOSTS = new Set([

'api.wordpress.org',

'downloads.wordpress.org',

'wordpress.org',

]);

export default {

async fetch(request) {

const currentUrl = new URL(request.url);

const target = currentUrl.searchParams.get('url');

if (!target) {

return new Response('未指定 URL', { status: 400 });

}

let targetUrl;

try {

targetUrl = new URL(target);

} catch {

return new Response('URL 无效', { status: 400 });

}

if (

!['http:', 'https:'].includes(targetUrl.protocol) ||

!ALLOWED_HOSTS.has(targetUrl.hostname.toLowerCase())

) {

return new Response('仅允许代理 WordPress 官方域名', { status: 403 });

}

const headers = new Headers(request.headers);

headers.set('User-Agent', 'WordPress-Cloudflare-Worker-Proxy/1.0');

headers.delete('host');

headers.delete('cf-connecting-ip');

headers.delete('cf-ipcountry');

headers.delete('cf-ray');

headers.delete('cf-visitor');

headers.delete('x-forwarded-for');

headers.delete('x-forwarded-proto');

const init = {

method: request.method,

headers,

redirect: 'follow',

};

if (!['GET', 'HEAD'].includes(request.method)) {

init.body = request.body;

}

const response = await fetch(targetUrl.toString(), init);

const responseHeaders = new Headers(response.headers);

responseHeaders.delete('content-encoding');

responseHeaders.delete('content-length');

responseHeaders.delete('transfer-encoding');

responseHeaders.delete('connection');

return new Response(response.body, {

status: response.status,

statusText: response.statusText,

headers: responseHeaders,

});

},

};

5、因为Cloudflare Workers默认域名国内无法访问,还需要绑定自己已经托管在Cloudflare 的域名。

6、如果绑定域名后,你的国内服务器访问很慢,可以使用“CloudflareSpeedTest”项目指定hosts IP。

CloudflareSpeedTest:https://github.com/XIU2/CloudflareSpeedTest

按照官方教程操作,选出最优IP后修改服务器hosts即可。

使用自己的服务器

这个稍微简单一些,如果你正好有网站在使用国外服务器,直接使用这个方案。

在任意目录新建一个.PHP文件,代码如下:

/**

* WordPress 官方资源代理脚本

*/

$allowedHosts = [

'api.wordpress.org',

'downloads.wordpress.org',

'wordpress.org',

];

if (empty($_GET['url'])) {

http_response_code(400);

exit('未指定 URL');

}

$url = trim($_GET['url']);

$parts = parse_url($url);

if (

empty($parts['scheme']) ||

empty($parts['host']) ||

!in_array($parts['scheme'], ['http', 'https'], true) ||

!in_array(strtolower($parts['host']), $allowedHosts, true)

) {

http_response_code(403);

exit('仅允许代理 WordPress 官方域名');

}

$method = $_SERVER['REQUEST_METHOD'] === 'POST' ? 'POST' : 'GET';

$headers = [

'User-Agent: WordPress-Proxy/1.0',

];

$options = [

'http' => [

'method' => $method,

'timeout' => 30,

'ignore_errors' => true,

'header' => implode("\r\n", $headers),

],

];

if ($method === 'POST') {

$body = file_get_contents('php://input');

$options['http']['header'] .= "\r\nContent-Type: " . (

$_SERVER['CONTENT_TYPE'] ?? 'application/x-www-form-urlencoded'

);

$options['http']['content'] = $body;

}

$context = stream_context_create($options);

$result = @file_get_contents($url, false, $context);

if ($result === false) {

http_response_code(502);

exit('代理请求失败');

}

if (!empty($http_response_header)) {

foreach ($http_response_header as $header) {

if (stripos($header, 'Transfer-Encoding:') === 0) {

continue;

}

if (stripos($header, 'Connection:') === 0) {

continue;

}

header($header, false);

}

}

echo $result;

网站加速

两个方案都需要修改需要加速的WordPress的主题function.php文件,在文件最下面添加:

add_filter('pre_http_request', function ($pre, $parsed_args, $url) {

$host = parse_url($url, PHP_URL_HOST);

if (!in_array($host, ['api.wordpress.org', 'downloads.wordpress.org'], true)) {

return $pre;

}

$proxy_url = 'https://你的域名/';

return wp_remote_request($proxy_url . '?url=' . urlencode($url), $parsed_args);

}, 10, 3);

注意需要修改代码中的域名部分,如果是Cloudflare Workers版本直接填写域名,如果是php版本需要精确的到文件,如:https://www.wpzh.net/wp/wp-proxy.php

1、本站所有WordPress主题、插件均由人工测试无误后发布。

2、本站保证代码的完整性和可用性,兼容性可查看主题/插件官网说明。

3、某些插件/主题的个别功能需要验证订阅账户并连接官方服务器,所以破解版是不能使用这个功能的。

4、本站只提供相应的主题、插件代码下载,不包含任何安装或其他服务。(可选本站付费服务)

5、本站汉化主题、插件均为破解版,详细信息请看资源文章说明。

6、开通终身会员后可享受全站无限制下载。

7、本站所有资源均为虚拟资源,所以已经售出,概不退款,还请谅解。

Previous Post
騗的意思
Copyright © 2088 元素星在线活动查询中心 All Rights Reserved.
友情链接