Liferay 7.1 HTTP转HTTPS重定向异常:URL额外拼接/es/web
排查Liferay 7.1 HTTP转HTTPS时URL额外拼接/es/web的问题
先从Liferay门户配置排查
- 检查站点虚拟主机绑定:进入控制面板→站点→配置→虚拟主机,确认HTTPS域名是否正确绑定到目标站点,且未设置错误的默认路径(比如强制添加/es/web前缀)。如果HTTPS域名未绑定到对应站点,Liferay可能会跳转到默认站点的路径,导致额外拼接。
- 核查Portal属性配置:打开
portal-ext.properties,重点检查以下参数:web.server.protocol:确认是否设置为https,如果仍为http,Liferay可能在协议切换时触发异常路由。liferay.virtual.hosts.default.site.path:该参数定义默认站点的路径,若设置为/es/web,会导致未匹配到虚拟主机的请求自动拼接该路径。locale.default和locales.enabled:确认西班牙语es是否为默认语言,且语言前缀的显示逻辑是否符合预期(比如是否仅在非默认语言时显示,但当前配置是强制显示语言前缀)。
- 测试直接访问HTTPS链接:跳过HTTP转HTTPS的步骤,直接输入正确的HTTPS URL(比如原HTTP链接是
http://yourdomain.com/xxx,直接访问https://yourdomain.com/xxx),如果仍自动跳转到带/es/web的URL,说明问题出在Liferay内部路由或站点配置。
再排查接入服务器(如Nginx/Apache)配置
- 检查HTTP转HTTPS的重写规则:查看接入服务器的配置文件,确认重写逻辑是否错误拼接了
/es/web。比如Nginx中如果存在类似rewrite ^(.*)$ https://$host/es/web$1 permanent;的规则,会导致所有HTTP请求转HTTPS时强制添加该前缀。 - 验证反向代理头信息:如果使用反向代理,确保正确传递协议头:
- Nginx需添加
proxy_set_header X-Forwarded-Proto $scheme; - Apache需添加
RequestHeader set X-Forwarded-Proto "https"
Liferay依赖X-Forwarded-Proto判断当前协议,若未正确设置,可能触发异常跳转。
- Nginx需添加
- 测试绕过接入服务器:直接访问Liferay应用服务器的HTTPS端口(比如Tomcat默认8443),输入
https://your-server-ip:8443/xxx,如果此时URL正常无额外拼接,说明问题出在接入服务器的配置。
关键验证步骤
- 对比日志:查看Liferay的
localhost_access_log.*日志和接入服务器的访问日志,追踪请求从HTTP到HTTPS的跳转过程,确认/es/web是在哪个环节被添加的。 - 站点路径测试:创建一个简单的测试页面,分别通过HTTP和HTTPS访问,观察URL变化,定位异常触发的场景。
常见修复方向
- 若为Liferay配置问题:重新绑定HTTPS域名到目标站点,调整
portal-ext.properties中的站点路径和协议参数,确保默认站点路径与预期一致。 - 若为接入服务器问题:修正HTTP转HTTPS的重写规则,移除多余的
/es/web拼接逻辑,确保反向代理头信息正确传递。
内容的提问来源于stack exchange,提问作者Daniel Medina Garcia
相关产品推荐
相关产品推荐

