enário de roteamento de lítio personalizado

Fui encarregado de reescrever um site existente com um grande catálogo de links pré-existentes. Por uma questão de argumento, vamos supor que não possamos fazer nada que altere o catálogo de links. Aqui estão alguns exemplos da estrutura de links com a qual estamos trabalhando:

Uma página de item seria:

www.domain.com/widgets/some-totally-awesome-large-purple-widget

Uma página de subpágina da categoria seria:

www.domain.com/widgets/purple-widgets

Uma página da página principal da categoria seria:

www.domain.com/widgets/

Uma página personalizada pode ser:

www.domain.com/some-random-page

Os vários tipos de página são muitos para escrever roteadores individuai

Usando o Router :: connect Eu posso facilmente contabilizar o primeiro e o segundo cenários usando algo como:

Router::connect('/{:pageroot}/{:pagekey}', 'Pages::index');

Por sua vez, o método Pages :: index procura entradas em nosso banco de dados com a "chave" de '/widgets/purple-widgets'

No entanto, o padrão da estrutura é a rota '/ {: controller} / {: action} / {: args}' para páginas como a terceira e a quarta. Eu sei que esse é o comportamento correto para o framework. Além disso, as melhores práticas indicariam que eu deveria escrever o site para corresponder a esse comportamento. Mas isso não é uma opção aqu

O que eu preciso é de um roteador que permita que o terceiro e o quarto exemplos funcionem da mesma forma que o primeiro. Todos os exemplos devem ser enviados ao controlador Pages :: index, que por sua vez consulta um banco de dados usando o caminho da URL como chave.

questionAnswers(2)

yourAnswerToTheQuestion