[我们已经在AWS ElasticBeanStalk的Tomcat8上运行了Java服务器。该项目包含一个AngularJS Webapp作为前端。我们的前端Webapp可通过www.domain.com/webappName访问。我在根目录下的.ebextensions / httpd / conf.d中放置了一个.conf文件。
这是我conf.d的内容(规则使用Angular7中的新版本的前端重定向到新的URL)
<VirtualHost *:80>
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/webappname/index\.html
RewriteRule ^webappname/index\.html(.*)$ https://redirect-domain.com/$1 [R=301,L]
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://localhost:8080/ retry=0
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost on
ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</VirtualHost>
但是重写无效。我在本地主机和在线模拟器上测试了规则,并且运行良好。但是,当我们在AWS ElasticBeanStalk上部署War文件时,它无法正常工作。
你知道为什么吗?看起来配置文件已被绕过。我尝试使用AllowOverride All
,但是它不起作用。
我们的ElasticBeanStalk与Tomcat8,Java8和Apache 3.3.2一起运行。
也许您可以尝试更强大,更灵活的CloudFormation。