
Estou tentando determinar a melhor maneira de encaminhar muitos URLs permanentemente em termos de desempenho e operabilidade. Portanto, há três maneiras possíveis de imaginar até agora:
- .htaccess RewriteRule
- Função de cabeçalho PHP procurando URLs correspondentes em uma matriz
- Função de cabeçalho PHP aparecendo em um banco de dados MySql
Não se trata de encaminhar um domínio inteiro, mas apenas alguns URLs de domínios. Como, por exemplo, quando os nomes dos produtos mudam dealgoparaalgo mais:
www.example.com/something > www.example.com/anything_else
enquanto URLs comowww.example.com/totally_differntpermanece intocado.
Responder1
Se você busca o ponto ideal entre capacidade de gerenciamento e desempenho, sugiro um processo de duas etapas (usamos o mesmo para nossa configuração de roteamento HTTP):
- URLs existem no banco de dados para fácil manutenção
- Um Script (bash, PHP, qualquer que seja) cria um script PHP a partir do banco de dados e de um modelo, definindo um array com o caminho original como chave e o novo caminho como valor, depois procura o caminho do documento solicitado e, se encontrado, redireciona para o novo, se não mostrar um 404. Este "script de criação de script" é executado, se o banco de dados mudar
- O script gerado é usado como substituto 404
Se você usar HHVM ou um cache de opcode, isso será extremamente rápido: o código em si está pronto e tudo o que precisa ser feito é uma pesquisa na tabela hash.