我无法编辑网址来删除应用程序的名称

我无法编辑网址来删除应用程序的名称

我正在 tomcat 9 环境中部署一个 Angular 13 应用程序。

这是我正在使用的域名: http://streamsspain.com/

结果如下: http://streamsspain.com/streamsspain_web/

我发现的问题是,我在 Ubuntu 20 操作系统中使用了来自 apache2 的代理,从 apache2 服务器到 tomcat 服务器的重定向正确完成,但我需要从 url 中删除应用程序的名称,即“streamsspain_web/”,我尝试使用相应的规则在 apache2 中创建“RewirteRule”,但找不到确切的规则。

或者也许 url 重写应该在 tomcat 本身中完成?

Apache 配置如下:

<VirtualHost *:80>
 ServerName streamsspain.com
 ServerAlias www.streamsspain.com

 ServerAdmin [email protected]

 ProxyRequests Off
 ProxyVia Off
 ProxyPreserveHost Off

 ProxyPass /StreamsSpain_WEB/ http://localhost:8180/StreamsSpain_WEB/
 ProxyPass / http://localhost:8180/StreamsSpain_WEB/
 ProxyPassReverse / http://localhost:8180/StreamsSpain_WEB/

 <Proxy *>
    Order deny,allow
    Allow from all
 </Proxy>

 ErrorLog ${APACHE_LOG_DIR}/Uploader_Image_error.log
 CustomLog ${APACHE_LOG_DIR}/Uploader_Image_access.log combined
</VirtualHost>

答案1

正如你所说,我认为你应该使用 RewriteRule。顺便说一下,在当前的 conf 文件中,你说无论我在浏览器中搜索什么http://streamsspain.com/http://streamsspain.com/streamsspain_web/,我将被重定向到相同的服务,但我只会收到来自http://streamsspain.com/streamsspain_web/,因为是唯一具有 ProxyPassReverse 规则的。

如果我理解正确的话,你希望你的服务能够暴露在http://streamsspain.com/没有应用程序名称。如果是这种情况,我认为您需要一个 RewriteRule 来将“streamsspain_web/”替换为“空字符串”。

然后您需要两个规则(ProxyPass 和 ProxyPassReverse)进行转发。

相关内容