我正在建立一个具有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行代码(或至少几行)的解决方案,在这里我可以轻松地添加一个段,而不必复制所有代码现有的行,然后是所有新行中的新段。