在 Laravel 中为路由设置别名

Ива*_*ван 2 php alias routes laravel

我有几个相同的页面,但有不同的网址。如何为路由设置这些别名?到目前为止,我只看到以下方法:

Route::get('/alias1', 'HomeController@someAction');
Route::get('/alias1.html', 'HomeController@someAction');
Route::get('/alias1.php', 'HomeController@someAction');
Route::get('/alias4', 'HomeController@someAction');
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来设置别名?

lag*_*box 5

您可以使用正则表达式约束轻松约束路由参数的格式:

Route::get('{alias}', 'HomeController@someAction')
    ->where('alias', 'alias1|alias1.html|alias1.php|alias4');

public function someAction($alias)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

仅当路径是您的 4 个别名之一时,该路由才会匹配。

Laravel 6.x 文档 - 路由 - 参数 - 正则表达式约束 where