Se você gosta muito de gerenciamento e desempenho, sugiro um processo de duas etapas (usamos o mesmo para nossa configuração de roteamento HTTP):
- existem URLs no banco de dados para facilitar a manutenção
- Um script (bash, PHP, whatever) cria um script PHP a partir do banco de dados e um modelo, definindo um array com o caminho original como chave e o novo caminho como um valor, procurando o caminho do documento solicitado e se encontrado redirecionando para o novo, se não mostrando um 404. Este "script de criação de script" é executado, se o DB muda
- O script gerado é usado como um fallback 404
Se você usa o HHVM ou um cache opcode, isso é incrivelmente rápido: o código em si está pronto e tudo o que precisa ser feito é uma pesquisa hashtable.