CMS 类似于 Slim 3 的通配符路由

CMS like wildcard routing with Slim 3

我正在为我正在进行的一些项目在 Slim 3 上开发一个(非常轻量级的)CMS。我正在为路由而苦苦挣扎。也许这里有人可以将我推向正确的方向。

管理员可以在后端添加新的前端页面。如果添加一个页面(自动)创建一个 slug。有几个页面(如索引页)无法删除或编辑(更改 slug)

现在我不知道如何设置路由。

我想要的示例:

www.example.com/
www.example.com/contact.html www.example.com/some-page.html

我能够设置通配符路由,但为了让事情更有趣,我也有一些后端路由:

www.example.com/backend/
www.example.com/backend/dashboard/
$app->get('/[{path:.*}]', function($request, $response, $path = null) { return $response->write($path ? 'subroute' : 'index'); });

$app->group('', function () {
    $this->get('/backend/dashboard.html', 'BackendDashboardController:index')->setName('backend');
});

一旦我也实施了这些,我就会收到以下错误:

Static route "/backend/dashboard.html" is shadowed by previously defined variable route "/(.*)" for method "GET"

我们将不胜感激。

如果您为“/backend”路径创建组,它应该可以工作。

$app->group('/backend', function () {
    $this->get('/dashboard.html', 'BackendDashboardController:index')->setName('backend');
});

$app->get('/[{path:.*}]', function($request, $response, $path = null) { return $response->write($path ? 'subroute' : 'index'); });