Trailing Slash

Trailing Slash

677
241

重写请求去除尾部斜杠,以保证 URL 规范化, 例如: /path/ -> /path

下载

安装到 Halo

方式一

如果安装了应用市场插件,可以直接在应用市场中搜索Trailing Slash并安装。

方式二

输入你的 Halo 站点地址,点击安装之后会重定向到你 Halo 后台并自动安装,Halo 的版本需要 >= 2.6.0。

方式三

点击手动下载,然后在 Console 上传。
logo

Trailing Slash

重写请求去除尾部斜杠,以保证 URL 规范化, 例如: /path/ -> /path

Halo App Store GitHub Release GitHub Actions Workflow Status GitHub License

简介

Trailing Slash 插件用于处理请求 URL 尾部斜杠问题。在 Spring Framework 3.0
及以上版本中,尾部斜杠的路由支持被弃用
,可能导致一些低版本 Halo 或者从其他应用如 Wordpress 等迁移过来的数据的请求路径无法正确处理。该插件旨在通过重写请求路径,移除
URL 尾部的斜杠,使其能够被正确匹配和处理。

问题背景

在 Spring Framework 3.0 之前,框架对 URL 尾部斜杠的路由进行了较宽松的处理。如果一个路由定义为 /example,访问 /example/
也能成功匹配并返回结果。然而,从 Spring Framework 3.0 开始,为了提高路由规则的一致性和准确性,框架不再支持尾部斜杠的自动匹配行为。
这导致一些依赖尾部斜杠的用户在升级到 Halo 2.x 后出现 404 错误。

插件解决方案

Trailing Slash 插件通过拦截请求 URL,并移除尾部的斜杠,使请求能够与定义的路由匹配。它适用于以下场景:

  • 兼容性:保持旧版本 Halo 在升级到 Halo 2.x 或者从其他应用迁移到 Halo 2.x 后仍然能够处理带尾部斜杠的请求。
  • 一致性:统一路由风格,使所有路由都保持一致的 URL 结构。

插件功能

  • 尾部斜杠处理:自动移除请求 URL 中的尾部斜杠
  • 主题端过滤:作为主题端 WebFilter 适用于所有主题端请求路径(/apis,/api 开头的请求除外)

使用建议

尽管该插件可以帮助解决尾部斜杠问题,但从长期来看,不建议在生产环境中依赖尾部斜杠路由。
为了获得更好的兼容性和可维护性,建议逐步过渡到标准化的无尾部斜杠路由风格。

安装到 Halo

方式一

如果安装了应用市场插件,可以直接在应用市场中搜索Trailing Slash并安装。

方式二

输入你的 Halo 站点地址,点击安装之后会重定向到你 Halo 后台并自动安装,Halo 的版本需要 >= 2.6.0。

方式三

点击手动下载,然后在 Console 上传。

这是一个开源应用,我们推荐优先在开源仓库中提交 issue,以便开发者更好地接收和跟进问题。

去提交 issue