Laravel 通配符路由到特定级别
Laravel wild card routing upto a particular level
我有一个正在处理的 Laravel 应用程序,我正在使用通配符路由来处理该应用程序的特定部分。 路由设置如下所示。
Route::get('/learn/{path?}','LearnPageController@index')
->where('path', '.+');
因此,它捕获了学习后出现的所有 url 部分,即 url 如
learn/something
learn/something/something
learn/something/something/something
learn/something/something/something/something
learn/something/something/something/something/something
.....
learn/
之后的几乎所有内容
但我只想捕获 url 部分 最多 4 个级别,即
learn/something/something/something
并且任何 url 超过 4 级的都必须重定向到 404 页面。
我该怎么做?
因为 where
方法接受正则表达式。我在 regex101.com 上摆弄了一些东西:
Route::get('/learn/{path?}','LearnPageController@index')
->where('path', '/^([^\/]+\/){0,2}[^\/]+$/');
查看上面 link 中的测试,看看它是否符合您的需求。我只是使用导出方法将正则表达式复制并粘贴到您的 php 代码中。
我有一个正在处理的 Laravel 应用程序,我正在使用通配符路由来处理该应用程序的特定部分。 路由设置如下所示。
Route::get('/learn/{path?}','LearnPageController@index')
->where('path', '.+');
因此,它捕获了学习后出现的所有 url 部分,即 url 如
learn/something
learn/something/something
learn/something/something/something
learn/something/something/something/something
learn/something/something/something/something/something
.....
learn/
但我只想捕获 url 部分 最多 4 个级别,即
learn/something/something/something
并且任何 url 超过 4 级的都必须重定向到 404 页面。
我该怎么做?
因为 where
方法接受正则表达式。我在 regex101.com 上摆弄了一些东西:
Route::get('/learn/{path?}','LearnPageController@index')
->where('path', '/^([^\/]+\/){0,2}[^\/]+$/');
查看上面 link 中的测试,看看它是否符合您的需求。我只是使用导出方法将正则表达式复制并粘贴到您的 php 代码中。