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

Wildfly 11 HTTP转HTTPS重定向丢失请求方法问题求助

解决Wildfly 11中HTTP转HTTPS重定向导致POST请求405的问题

这个问题我之前配置Wildfly重写规则时也踩过坑,根源在于默认的重定向行为会篡改请求方法:当你用不带指定状态码的redirect="true"时,Undertow会返回302 Found响应,客户端收到后会自动把POST请求转换成GET请求重新发送,这就导致HTTPS端点收到的请求方法和预期不符,直接返回405错误。

要保留原始请求方法(包括POST、PUT等带请求体的方法),你需要用支持保留请求上下文的重定向状态码——307 Temporary Redirect或308 Permanent Redirect,前者适用于临时重定向场景,后者用于永久重定向场景。

修改后的配置

1. 更新重写过滤器配置

在<filters>块中,为rewrite过滤器添加status-code参数指定状态码:

<filters>
    <rewrite name="http-to-https" redirect="true" target="https://%v:443%U" status-code="307"/>
</filters>

如果是永久重定向需求,把status-code的值改为308即可。

2. 保留原有的filter-ref配置

<filter-ref name="http-to-https" predicate="equals(%p,80)"/>

原理说明

根据Undertow 1.4.x的文档,status-code参数允许自定义重定向的HTTP状态码:

  • 307会强制客户端使用原始请求方法和请求体重新发送请求到目标HTTPS地址
  • 308的行为和307一致,但表示重定向是永久的,浏览器可能会缓存这个重定向规则

这样修改后,POST请求就会以原方法和请求体被重定向到HTTPS端点,不会再出现405错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:47:27