Условия, при котором URL будет доступен

В файле routes/web.php при указании URL, через метод where() можно указать условия, при котором URL будет доступен. Условия указываются через регулярные выражения.

// в {id} могут быть только числа
Route::get('news/{id}', 'NewsController@show')->where('id', '\d+');

// одно из указанных значений, например «ru» или «en» 
Route::get('{lang}/news', 'NewsController@index')->where('lang', 'ru|en');

Регулярное выражение \d разрешает использовать только числа, а знак + означает, что числа могут быть указаны в любом количестве.

2. Условие по умолчанию

Чтобы, например, не указывать для каждого параметра {id} условие where(), в файле app/Providers/RouteServiceProvider.php можно указать условие по умолчанию. 

# app/Providers/RouteServiceProvider.php

class RouteServiceProvider extends ServiceProvider
{

    public function boot()
    {
        // в URL для параметра {id} можно указывать только числа
        Route::pattern('id', '\d+');

        parent::boot();
    }

    // …

}