用于照明路由的多个可选路径前缀段

时间:2019-07-10 07:27:40

标签: php laravel routing amp-html

我正在建立一个具有AMP支持的多语言(以及多用户)网站。为此,我的URL结构如下:

/{language?}/{amp?}/{page?}

对于主页(/),您可以使用以下版本:

/
/nl
/en
/amp
/nl/amp
/en/amp

对于另一页,说/ about,您可以使用以下版本:

/about
/nl/about
/en/about
/amp/about
/nl/amp/about
/en/amp/about

我正在使用Illuminate Routing库。

现在我使用4行代码。问题不在于它不起作用,而是我不喜欢如何解决它,因为将来我要添加的每个段的行数都呈指数增长。对于具有3个可选段的前缀,我需要8行代码,而4个可选段则需要16行,等等。

Route::group(["prefix"=>"/"],$ROUTES);
Route::group(["prefix"=>"/{lang?}","where"=>["lang"=>implode("|",$LANGS)]],$ROUTES);
Route::group(["prefix"=>"/{amp?}","where"=>["amp"=>"amp"]],$ROUTES);
Route::group(["prefix"=>"/{lang?}/{amp?}","where"=>["lang"=>implode("|",$LANGS),"amp"=>"amp"]],$ROUTES);

这4行按其应有的方式工作,但是我想看到一个包含1行代码(或至少几行)的解决方案,在这里我可以轻松地添加一个段,而不必复制所有代码现有的行,然后是所有新行中的新段。

0 个答案:

没有答案