如何使用 WildFly/JBOSS 16 配置 URL 重定向? (重写规则),部署的 Angular 应用程序出现 404 "Not Found" 错误

How to configure URL redirect with WildFly/JBOSS 16? (Rewrite rules), 404 "Not Found" error with deployed Angular app

我正在使用 WildFly 16 为我的 Angular 应用程序提供服务。在我将 war 放入部署中并尝试访问该应用程序后,它按预期工作,但是每次我手动刷新页面(即 F5)时,我都会收到一条未找到消息。

  1. 我找了很多网站,但大多数网站不够具体,或者使用的是旧版本的 WildFly。

  2. 我听说过 Handlers 和 Predicates 属性,但我不知道如何或在哪里使用它们 (http://undertow.io/undertow-docs/undertow-docs-1.2.0/predicates-attributes-handlers.html)

  3. 我觉得应该和Apache Rewrite规则类似https://www.stefanoscerra.it/apache-rewrite-rules-configuration-for-angular/

  4. 哈希位置策略在这种情况下不起作用,因为我需要 URL "clean" 从第 3 方应用程序进行某些重定向。

我每次构建时都更新了 war 中的 web.xml 文件。我添加了 error-page 部分

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Spotlight</display-name>
<welcome-file-list><welcome-file>index.html</welcome-file></welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/</location>
</error-page>
</web-app>