如何配置 Undertow 处理程序以支持 SPA 书签的正确重写?

2023-12-15

我正在尝试配置 JBoss EAP 7(通过 Undertow)以正确地将任何 SPA URL 重写回 SPAindex.html使用 Undertow 处理程序。不幸的是,我的 API 位于/api,所以我需要让任何以以下开头的请求通过/api.

这是我当前的配置(摘自另一个 SO 答案):

not equals(%R, '/my-app') and 
not equals(%R, '/my-app/') and 
not equals(%R, '/my-app/index.html') and 
not path-prefix('/my-app/api') and 
not regex('/my-app/.*\.js') and 
regex('/my-app/.+') -> rewrite('/my-app/index.html')

不幸的是,这似乎并没有重写任何东西。如何更新此配置以属性重写 URL?


首先,尝试以下配置WEB-INF/undertow-handlers.conf:

path-prefix('/api') -> done
path-suffix('.js') -> done
path-prefix('/') -> rewrite('/')

你不应该需要/my-app任何规则的前缀,因为它们已经在您的应用程序上下文中运行。

但是,您可能需要添加其他谓词以防止重写其他资源,例如样式表、网站图标、源地图等。谓词和处理程序的完整列表有助于制定更具体、更有针对性的规则。

请注意,path-suffix仍然占据像这样的路径/app?thing.js。尽管您可能永远不会使用这样的查询参数,但最好记住它会被重写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置 Undertow 处理程序以支持 SPA 书签的正确重写? 的相关文章

  • 根据属性检查 firebase 是否存在现有对象,防止重复

    我想检查我的 firebase 看看我是否已经存储了一个与两个属性匹配的对象 为了将这个问题放在上下文中 想象一个仅存储歌曲的应用程序 具有 艺术家 和 歌曲名 等属性 如下所示 var wishlist new Firebase http
  • PHP 代码确定用户是否被 301 重定向到我的网站

    PHP 是否可以知道用户是否已被 301 重定向到我的网站 So in myoldsite com我的 htaccess 文件中有一个 301 重定向到mynewsite com 我可以在其中放置一些 PHP 代码吗mynewsite co
  • 如何用帖子标题 slug 重写 url?

    考虑一个网址 www example com paper ads details php req 43397 rnd 1308546000 我想将此网址更改为 www example com jobs in chanai php where
  • Routes.rb vsrack-rewrite vs nginx/apache 重写规则

    我的应用程序的前一个版本中的遗留 URL 有数十条重写规则 我看到三个选择 只需在路由文件 config routes rb 中添加 匹配 行 Use 机架重写 https github com jtrupiano rack rewrite
  • Glassfish 和 JBoss 5 的现实比较?

    在现实世界中有人有这两种经历吗 它们在性能 内存使用 速度等 方面如何比较 稳定 JBoss Seam 在 Glassfish 上运行良好吗 从我自己的经历来看 有几点 GlassFish 拥有更好的管理控制台 JBoss 有三个控制台 每
  • 如何在远程计算机上调试 war 文件?

    如果我有一个 jboss 服务器在另一台机器上运行 并且我将我的 war 文件 scp 到该机器 我该如何调试 war 我会使用什么命令 如何在我的终端中执行此操作 在远程计算机上使用调试参数运行 jboss Xdebug Xrunjdwp
  • 从 URL 中删除文件扩展名

    我从未使用过 mod rewrite 但我想从网站的网址中删除所有文件扩展名 我需要遵循什么规则才能做到这一点 我已经尝试过这个 但是每次我单击网站上的链接时都会出现内部错误 RewriteRule 1 php L Options Mult
  • Keycloak 重定向 URI 提供 https://localhost 而不是 http://localhost

    我正在尝试在 Keycloak 上验证 Cordova Android 应用程序 我之前提出过一个关于它的问题 但我在这里将其简化为仅提供要点 因为我在过去 2 3 天中发现了很多东西 Cordova Android 应用程序中的网页不可用
  • 如何在Windows上启动JBoss AS 7.1.1?

    我是新来的JBOSS 我下载了jboss as 7 1 1 Final zip并解压缩该 zip 文件 然后我转到 bin 文件夹并双击standalone bat 但新的 cmd 窗口在 2 3 秒内打开和关闭 我尝试通过cmd启动服务器
  • IIS ARR - 反向代理的 URL 重写 - 如何发送 HTTP_HOST

    尝试在多个后端 IIS 服务器前面使用 AAR 作为反向代理 分配给运行 IIS AAR 的服务器的一个公共 IP 地址 然后出站 URL 重写规则设置为重定向到以下之一 多个后端服务器 具体取决于主机名 有点工作 但总是返回后端服务器默认
  • django获取FileField的绝对路径

    我试图在模板上调用 FileField 时检索绝对路径 以 http 开头 我怎样才能做到这一点 ie fl uploadedfile gt 返回相对路径 如 media uploads 当我想要的时候This http www blabl
  • Request.Url.Query 和 Request.QueryString 有什么区别?

    我一直在追踪 URL 重写应用程序上的错误 该错误表现为查询字符串中某些变音符号的编码问题 基本上 问题是基本上 search aspx search he m nek 的请求被 search he c5 99m c3 a1nek 的查询字
  • Jboss 7战争部署失败

    Jboss 7 war 部署失败 我在日志中收到以下错误消息 ERROR org jboss as server deployment scanner DeploymentScanner threads 1 JBAS015052 Did n
  • 在 SPA 中加载外部脚本和样式文件

    我有一种 SPA 它使用 API 来获取数据 该 SPA 有一些实例 它们都使用通用样式和脚本文件 所以我的问题是 当我更改这些文件中的一行时 我将必须打开每个实例并更新文件 这对我来说真的很耗时 一种方法是将这些文件放在服务器中的文件夹中
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • Apache 重写规则可以使用或不使用尾部斜杠

    我正在尝试重定向一系列静态 URL 并且无论尾部斜杠是否存在 我都希望它能够正常工作 foo bar gt tacos foo bar gt tacos 我已经尝试了以下方法以及各种变体 但我总是只得到尾部斜杠存在的匹配项 RewriteR
  • 为什么我们在同一台服务器上使用多个应用程序服务器实例

    我想这是有充分理由的 但我不明白为什么有时我们会在同一物理服务器上放置例如 5 个具有相同 Web 应用程序的实例 这与多处理器架构的优化有关吗 JVM 或其他允许的最大内存限制 嗯 过了很长一段时间我又看到这个问题了 一台机器上的多个 J
  • 启动 jboss 服务器时出错

    我刚刚完成重新安装我的操作系统 并像往常一样安装和测试我使用的标准工具 现在当我尝试从 eclipse 启动 Jboss 5 时 我遇到了这个前所未有的错误 这是一个很大的例外 3 53 10 693 ERROR AbstractKerne
  • Sails js 路由静态 html

    我想在我的 sails js 应用程序中完全分离客户端和服务器端 如果我删除 路由 它将自动从 assets 文件夹中提供一个名为index html的文件 我想从资产文件夹中提供另一个文件 我该怎么做 如果你看看 sails 使用的中间件
  • 如何在 Lift 框架中添加新页面

    如何在 lift 中的 webapp 目录中添加一个可供用户访问的新页面 目前只能通过index html访问http localhost 8080 com http localhost 8080 or http localhost 808

随机推荐