我的需求是做一个短链接系统,domain.com/hU2c 这样的url可以直接访问短链接还原长连接的操作。
但是在做路由的时候遇到了问题,这是我目前的路由设置
use Webman\Route;
Route::any('/api/shortURL', [app\controller\Api::class, 'shortURL']);
// 默认根路径就去访问还原长链接
// Route::get('[{path:.+}]', [app\controller\Api::class, 'restore']);
Route::fallback(function ($request){
return (new app\controller\Api::class)->restore($request);
});
如果使用
Route::get('[{path:.+}]', [app\controller\Api::class, 'restore']);
我的/api/shortURL以及其他路由不会生效,会被Route::get('[{path:.+}]'匹配,这样我无法进行其他操作。
于是我想到使用Route::fallback来做最后的匹配,但是翻遍了论坛和文档,没有找到合适的解决方案。
跟我类似需求的帖子 https://www.workerman.net/q/8597 实践后的结论是 无法使用,显示404.