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

Java应用发POST请求至Bitnami搭建的WordPress站点返回301错误如何处理

问题原因

  • 核心原因1:请求地址不匹配触发WordPress自动重定向
    Bitnami部署的WordPress默认会在后台设置固定的站点域名,当请求的域名和后台设置的站点域名不一致时(比如你Java代码请求的是不带www的example.com,后台设置的是带www的www.example.com),或是请求路径缺少尾斜杠时,WordPress会自动返回301永久重定向到符合规则的地址。你给出的.htaccess是WordPress默认伪静态规则,不存在配置错误。
  • 核心原因2:Apache HttpClient 4.x默认不跟随POST请求重定向
    浏览器默认会自动跟随POST请求的301重定向,因此你在Firefox中发请求可以正常拿到结果;而Apache HttpClient 4.x默认的重定向策略仅对GET、HEAD等安全方法自动跟随重定向,POST请求不会自动跳转,因此直接返回301错误。

排查步骤

首先在Java代码中打印重定向目标地址,确认具体的重定向原因:

// 执行请求后获取重定向地址
Header location = RESPONSE.getFirstHeader("Location");
System.out.println("301重定向目标:" + location.getValue());

解决方案

方案1(推荐):修正请求地址匹配规则

  1. 域名匹配:登录WordPress后台,进入「设置」→「常规」页面,查看WordPress地址(URL)和站点地址(URL)的完整前缀,将Java代码中的请求域名修改为和后台配置完全一致即可。
  2. 路径尾斜杠匹配:如果打印的重定向地址只是在原路径末尾增加了/,直接修改Java请求地址,在路径末尾补斜杠即可,比如调整为https://example.com/wp-json/v1/meth-post/?param=whatever。

方案2:配置HttpClient支持POST自动重定向

如果不方便修改请求地址,可以修改HttpClient配置,开启POST请求的自动重定向:

// 构建支持POST重定向的HttpClient实例
CloseableHttpClient httpClient = HttpClientBuilder.create()
        .setRedirectStrategy(new LaxRedirectStrategy()) // 该策略支持POST、PUT等方法的重定向
        .build();

方案3(不推荐):禁用WordPress canonical重定向

如果确认不需要该重定向规则,可以在WordPress当前主题的functions.php文件末尾添加以下代码:

// 禁用canonical自动重定向
remove_action('template_redirect', 'redirect_canonical');

该方案会影响站点SEO,仅临时调试使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:54:03