disable web middleware for specific routes in laravel 5.2

I prefer to exclude middleware via routes. You can do it in two ways:

  1. Single action:
Route::post('login', 'LoginController@login')->withoutMiddleware(['auth']);
  1. Group mode:
Route::group([
    'prefix' => 'forgot-password',
    'excluded_middleware' => ['auth'],
], function () {
    Route::post('send-email', 'ForgotPasswordController@sendEmail');
    Route::post('save-new-password', 'ForgotPasswordController@saveNewPassword');
});

Tested on Laravel 7.7


Add an exception in the middleware declaration in the construct

Route::get('/', 'HomeController@index');

for the above route to be exempted from authentication you should pass the function name to the middleware like below

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth', ['except' => 'index']);
    }
}

Remove the middleware from HomeController construct:

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        //$this->middleware('auth');
    }
}