我们正在将旧的硬编码网站重写为基于Symfony2框架的新网站。
由于搜索引擎,我们需要在网址中保留旧模式。我们的实际网址是:
- 使用domain.tld /类别/
- 使用domain.tld /类别/子类别/
这不是问题,但现在是真正可选的参数:
- 我们在全文搜索中有一些导航器,例如:locality,form,type,length
- 所有导航员都必须像'漂亮的网址'
- url中的每个导航器必须位于一个位置(不重复)
意思是:
- domain.tld / category / subcategory / locality-prague / form-daily / type -a / length-2 /< - 这是完整的('a'或'2'仅作为示例)
但所有部分都是可选的,正确的网址示例:
- 使用domain.tld /类别/形式每日/
- 使用domain.tld /类别/子类别/类型-A /长度-2 /
- 使用domain.tld /类别/局部性布拉格/长度-2 /
错误网址的示例:
- domain.tld / category / length-2 / locality-prague /< - url的混合部分(长度在地方之前)
所以...有没有优雅的解决方案如何解决Symfony2中每个slug位置的可选参数?
我将如何在Nette Framework中执行此操作:
/[<category [a-z]>/][<subcategory [a-z]>/][locality-<locality [a-z]>/][form-<form [a-z]>/][type-<type [a-z]>/][length-<length [a-z]>/]
[] - 这意味着可选,它将正确匹配