Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/halo-sigs/plugin-trailing-slash
重写请求去除尾部斜杠,以保证 URL 规范化, 例如: /path/ -> /path
https://github.com/halo-sigs/plugin-trailing-slash
blog blog-engine cms halo plugin sitebuilder
Last synced: 9 days ago
JSON representation
重写请求去除尾部斜杠,以保证 URL 规范化, 例如: /path/ -> /path
- Host: GitHub
- URL: https://github.com/halo-sigs/plugin-trailing-slash
- Owner: halo-sigs
- License: gpl-3.0
- Created: 2024-05-08T03:15:17.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-05-08T05:51:31.000Z (9 months ago)
- Last Synced: 2024-12-09T18:17:12.455Z (2 months ago)
- Topics: blog, blog-engine, cms, halo, plugin, sitebuilder
- Language: Java
- Homepage: https://www.halo.run/store/apps/app-KOQzV
- Size: 129 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 简介
`Trailing Slash` 插件用于处理请求 URL 尾部斜杠问题。在 Spring Framework 3.0
及以上版本中,[尾部斜杠的路由支持被弃用](https://github.com/spring-projects/spring-framework/issues/28552)
,可能导致一些低版本 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` 开头的请求除外)## 使用建议
尽管该插件可以帮助解决尾部斜杠问题,但从长期来看,不建议在生产环境中依赖尾部斜杠路由。
为了获得更好的兼容性和可维护性,建议逐步过渡到标准化的无尾部斜杠路由风格。