Laravel:捕获所有没有/ api / segment的路由

时间:2016-05-31 10:02:17

标签: regex laravel

我需要捕获所有路由,除了那些包含/ api / segment的路由。 我知道如何捕捉每条路线

Route::any('{all}', 'AngularController@serveFrontend')->where('all', '(.*)');

但是我需要更改什么才能使我的api路由不被此字符串捕获?

4 个答案:

答案 0 :(得分:5)

您可以捕获路径不以api

开头的所有路线
Route::any('{all}', 'AngularController@serveFrontend')->where('all', '^(?!api).*$');

或者只是将您的捕获物作为最后一条路线,它将按预期工作。

答案 1 :(得分:1)

只需将/api/段之前的路径放置在此之前,它就能按您的意愿运行。所有与API相关的URL都将通过第一个路由进行处理,其他所有URL将使用第二个路由进行处理。

答案 2 :(得分:0)

您可以捕获除以 /api 开头的路线外的所有路线

Route::any('{any}', [UserController::class,'index'])->where('any', '^(?!api).*$');

答案 3 :(得分:0)

对于多个例外,您可以使用 | 标识符:(例如 nova)

Route::get('/{all}','AngularController@serveFrontend')->where('all','^(?!api|nova).*$');