我如何在Laravel中进行全部捕获路由

问题描述 投票:27回答:3

我需要一个laravel route.php条目,该条目将捕获到网站特定domain.com/premium-section的所有流量,以便我可以提示人们在访问高级内容之前成为会员。

php laravel routing
3个回答
41
投票
您还可以通过在参数上使用正则表达式来捕获'all'。

Route::group(['prefix' => 'premium-section'], function () { // other routes ... Route::get('{any}', function ($any) { ... })->where('any', '.*'); });

如果没有使用可选参数定义路由,也可以捕获整个组。

Route::get('{any?}', function ($any = null) { ... })->where('any', '.*');

这最后一个也将捕获'domain.com/premium-section'。

22
投票
这可以解决问题:

Route::any('/{any}', 'MyController@myMethod')->where('any', '.*');


0
投票
    在app / Http / routes.php中,我创建了一条路由,该路由将捕获domain.com/premium-section/anywhere/they/try/to/go中的所有流量,并尝试在PremiumSectionController中查找并执行匹配功能
  1. 但是没有任何匹配方法,只是一个包罗万象的东西。

    Route::group(['as' => 'premium-section::', 'prefix' => 'premium-section', 'middleware' => ['web']], function(){ Route::any('', 'PremiumSectionController@premiumContentIndex'); Route::controller('/', 'PremiumSectionController'); });

namespace App\Http\Controllers; use ... class PremiumSectionController extends Controller{ public function premiumContentIndex(){ return 'no extra parameters'; } //magically gets called by laravel public function missingMethod($parameters = array()){ return $parameters; } }

© www.soinside.com 2019 - 2024. All rights reserved.