You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅将WordPress REST API请求从旧域名重定向至新域名?

当然可以实现!针对你只想把旧站的WordPress REST API请求重定向到新站点,同时保留旧站其他内容的需求,我整理了几个实用的方案,你可以根据自己的服务器环境来选:

方案1:Apache服务器用.htaccess配置(最常用)

如果你的旧站部署在Apache服务器上,直接修改根目录下的.htaccess文件就能搞定。注意要把这段规则放在WordPress默认的Rewrite规则之前,不然可能被覆盖:

# 仅重定向WP REST API请求到新站点
RewriteEngine On
RewriteRule ^wp-json/(.*)$ http://www.newwebsite.com/wp-json/$1 [R=301,L]
  • R=301表示永久重定向,对搜索引擎SEO友好;如果只是临时测试,可以改成R=302(临时重定向)。
  • L表示这是最后一条匹配规则,一旦匹配到API请求,就不会再执行后面的规则了。
方案2:Nginx服务器配置

如果旧站用的是Nginx,打开站点的Nginx配置文件,在server块里添加这段规则:

# 匹配所有/wp-json/开头的请求并重定向
location ^~ /wp-json/ {
    return 301 http://www.newwebsite.com$request_uri;
}
  • ^~表示优先匹配这个路径,避免和其他location规则冲突。
  • $request_uri会完整保留原来的API路径参数,比如旧站的/wp-json/wp/v2/posts/123会自动重定向到新站的http://www.newwebsite.com/wp-json/wp/v2/posts/123。
方案3:WordPress代码片段(无需服务器权限)

如果你不想碰服务器配置,也可以直接在WordPress里加代码实现。可以把这段代码添加到主题的functions.php文件,或者创建一个简单的自定义插件:

add_action('init', 'redirect_old_wp_api_to_new_site');
function redirect_old_wp_api_to_new_site() {
    // 检查当前请求是否是WP REST API请求
    if (isset($_SERVER['REQUEST_URI'])) {
        // 兼容PHP 7及以下版本用strpos,PHP 8+可以用str_starts_with
        if (strpos($_SERVER['REQUEST_URI'], '/wp-json/') === 0) {
            $new_api_url = 'http://www.newwebsite.com' . $_SERVER['REQUEST_URI'];
            wp_redirect($new_api_url, 301);
            exit;
        }
    }
}

这段代码会在每次页面请求初始化时,检查请求路径是否以/wp-json/开头,如果是就立即重定向到新站的对应API地址。

几个重要提醒
  • 测试阶段建议先用302临时重定向,确认所有API请求都能正确跳转到新站且返回正常数据后,再换成301永久重定向,避免错误重定向影响SEO。
  • 确保新站点的WordPress REST API已经配置完成,且内容和旧站一致,避免重定向后出现404或数据不一致的问题。
  • 如果你有自定义的API端点(比如/wp-json/my-custom-api/v1/...),上面的所有方案都能自动覆盖,因为它们都是以/wp-json/开头的请求。

内容的提问来源于stack exchange,提问作者Neil K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:05:30