注册的路由与实际的匹配结果不一致,不知道是我写错了规则还是程序BUG,求大佬们看看。
1. 该问题的重现步骤是什么?
public static function activate() {
Helper::addRoute('TestIndex', '/test/', 'Test_Widget_Contents_Rows', 'render');
Helper::addRoute('TestPage', '/test/page/[page:digital]/', 'Test_Widget_Contents_Rows', 'render');
Helper::addRoute('TestTagIndex', '/test/tag/[keywords]/', 'Test_Widget_Contents_Rows', 'render');
Helper::addRoute('TestTagPage', '/test/tag/[keywords]/[page:digital]/', 'Test_Widget_Contents_Rows', 'render');
}
插件激活后,新增四个路由规则。
2. 你期待的结果是什么?实际看到的又是什么?
请求路由 | 期待匹配结果 | 实际匹配结果 | 预期是否正确 |
---|---|---|---|
/test/ | TestIndex | TestIndex | ✔ |
/test/typecho666 | not found | TestIndex | ❌ |
/test/你好 | not found | not found | ✔ |
/test/page/10086 | TestPage | TestPage | ✔ |
/test/page/你好 | not found | not found | ✔ |
/test/tag/你好 | TestTagIndex | TestTagIndex | ✔ |
/test/tag/typecho666 | TestTagIndex | TestTagIndex | ✔ |
/test/tag/typecho666/10086 | TestTagPage | TestTagPage | ✔ |
/test/tag/你好/10086 | TestTagPage | TestTagIndex | ❌ |
3. 问题出现的环境
- 操作系统版本:Win10
- Apache/NGINX 版本:Nginx1.16.1
- 数据库版本:MySQL 5.7.39
- PHP 版本:PHP 7.4.3
- Typecho 版本:1.2.0
- 浏览器版本:Chromium 86.0.4240.198