2017-09-13 122 views
1

我有一個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頁面。

我該怎麼做?

回答

1

因爲where方法接受正則表達式。我擺弄上regex101.com東西:

Route::get('/learn/{path?}','[email protected]') 
    ->where('path', '/^([^\/]+\/){0,2}[^\/]+$/'); 

Link to regex101 fiddle

看看鏈接中的測試上面,看它是否符合您的需求。我只是使用導出方法來複制+粘貼正則表達式到您的PHP代碼。

+0

不錯。謝啦。這是我需要的。 – besrabasant