Route::fallback如何指向控制器或如何设置路由的优先级?类似短链/匹配

不停

问题描述

我的需求是做一个短链接系统,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.

212 1 0
1个回答

walkor 打赏
Route::any('/{any}', [app\controller\Api::class, 'restore']);
  • 暂无评论
×
🔝