Laravel通配符路由到一个特定的水平
问题描述:
我有一个Laravel我正在使用的应用程序和我使用通配符路由的应用程序的特定部分。 路线设置看起来像这样。Laravel通配符路由到一个特定的水平
Route::get('/learn/{path?}','[email protected]')
->where('path', '.+');
因此,它捕获进来后学即所有的URL部分,网址等之后learn/
自带
learn/something
learn/something/something
learn/something/something/something
learn/something/something/something/something
learn/something/something/something/something/something
.....
几乎一切,但我想捕捉URL部分只达到4级即
learn/something/something/something
以及超过4级的任何url必须重定向到404页面。
我该怎么做?
答
因为where
方法接受正则表达式。我摆弄上regex101.com东西:
Route::get('/learn/{path?}','[email protected]')
->where('path', '/^([^\/]+\/){0,2}[^\/]+$/');
看看链接中的测试上面,看它是否符合您的需求。我只是使用导出方法来复制+粘贴正则表达式到您的PHP代码。
不错。谢啦。这是我需要的。 – besrabasant