请教大家一个问题,我们用的是阿里云的SLB+ECS,其中域名解析到SLB上,SSL证书也安装在SLB上,ECS服务器上安装了apache用于重写,tomcat提供后台服务。在SLB上开放了两个前端端口80和443,分别对应到后端apache的81和tomcat的80,这种情况对全站跳转https有效,但现在想类似/A/B.html?id=xxx的请求还是继续走80请求转给tomcat处理,而其他的请求都强制自动转https,怎么实现呢?
我尝试了在apache里配置以下规则
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/A/B.* [NC]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,NE,L]
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [NE,L]
结果对于/A/B.html的请求因为不满足规则1而使用规则2,但是规则2又将请求转回了SLB,SLB再转到apache,导致产生重定向循环
而如果把规则2去掉,又因为没有匹配到相应的重写路由出现404错误,该怎么写才能让apache直接转到后台tomcat处理呢?
提了工单给阿里云,结果人家居然不管,只好在这求救,哪位专家给点思路,不胜感激!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。