Quando resolvi tirar o AMP do site, as páginas antigas ainda tinham endereços terminados em /amp. Eu queria que essas visitas chegassem à versão normal, sem escrever um redirecionamento diferente para cada artigo. Uma expressão regular conseguia reaproveitar a parte do endereço que continuava igual.
Use uma regra de padrão quando vários endereços mudam juntos
O AMP deixava uma versão com outro endereço para cada página. Quando parei de usar esse formato, as URLs antigas ainda podiam receber visitas. A regra precisava reconhecer o final /amp e encaminhar a solicitação para a página normal. Fazer isso post por post daria trabalho sem necessidade, porque os endereços seguiam o mesmo desenho.
O outro caso veio dos slugs. Eu tinha usado “animes” em endereços de algumas traduções e queria trocar por “anime”. Mudei os slugs em lote no banco de dados, mas as URLs antigas continuavam circulando e sendo encontradas. O redirecionamento servia para ligar cada endereço antigo ao novo sem perder o restante do caminho.
Esse é o uso prático da regex que eu queria explicar: procurar um padrão que se repete, capturar o trecho variável e colocá-lo no destino. A mesma regra pode cobrir muitos artigos quando a parte que muda tem uma estrutura comum.
No Rank Math, capture a parte variável entre parênteses
Eu usava o Rank Math, que já tinha o gerenciador de redirecionamentos na configuração que escolhi. Para seguir esse caminho, ative o módulo de Redirections do plugin. Na origem, selecione o modo Regex e coloque entre parênteses a parte do endereço que precisa reaparecer. O primeiro trecho capturado vira $1 no destino; o segundo vira $2. Assim, a regra leva junto o nome do artigo ou os diretórios que não mudaram.
Para remover o sufixo AMP, um exemplo documentado pelo próprio Rank Math é capturar o caminho antes de /amp e reutilizá-lo: a origem pode seguir o padrão /(.*)/amp e o destino fica /$1. O padrão descreve vários endereços de uma vez; o cifrão aponta para o que foi guardado entre parênteses.
No caso de “animes”, a posição da palavra mudava. Ela podia aparecer no começo, no meio ou no fim do slug. Eu expliquei que, nesse exemplo, separaria as posições em três regras; quando há dois trechos variáveis, cada grupo precisa ocupar o lugar certo com $1 e $2. Regex permite isso, mas também pode casar com endereços que você não pretendia incluir. Eu conferiria a origem e o destino em URLs reais antes de deixar a regra ativa.
Use 301 quando a mudança for permanente. Se você ainda está testando o padrão, evite publicar um redirecionamento definitivo que leve uma parte maior do site para o mesmo destino. Uma regra ampla pode transformar uma correção de slug em um monte de páginas no endereço errado.
Na Cloudflare, capture o caminho com * e reutilize com $1
Também dava para fazer o redirecionamento na Cloudflare, antes de a requisição chegar ao WordPress. Eu recomendava colocar o site atrás da Cloudflare porque algumas regras são processadas na borda, sem passar pelo WordPress. Isso não deixa qualquer página mais rápida automaticamente: cache e outras configurações também influenciam. Para esse caso, a tela que eu usava era Page Rules.
A diferença em relação à regex do Rank Math é o caractere curinga: na origem da Page Rule, o asterisco * captura o pedaço variável. No destino da ação Forwarding URL, $1 reaproveita o primeiro asterisco e $2 reaproveita o segundo. Por exemplo, uma regra para example.com/*/amp pode encaminhar para https://example.com/$1 com status 301.
Na época, o plano gratuito tinha três Page Rules. Eu já ocupava as três com outras configurações do site, incluindo ajustes relacionados a HTML e cache, além do redirecionamento de www e HTTPS para o endereço principal. Por isso, se as regras já estivessem cheias, o redirecionamento poderia ficar no WordPress ou exigir outro plano.
Nas regras atuais, confira a sintaxe e o limite do seu plano
A Cloudflare ainda documenta Page Rules e lista três regras no plano gratuito. Para configurações novas, porém, a empresa recomenda considerar os produtos mais recentes de Rules. Single Redirects oferece dez regras no plano gratuito e aceita padrões com asterisco; regex nas regras de redirecionamento só aparece a partir do plano Pro. O hostname também precisa estar com o DNS proxy da Cloudflare ativo para a regra ser aplicada.
A sintaxe também mudou na interface atual. Em Page Rules e no Rank Math, o trecho capturado é escrito como $1. Na configuração de wildcard dos Single Redirects, o destino usa ${1} e ${2}. A ideia é a mesma — reaproveitar os pedaços que o padrão encontrou —, mas copiar literalmente o cifrão do tutorial antigo para a tela nova pode não funcionar.
Para trocar slugs em massa dentro do WordPress, o Rank Math ou outro gerenciador que aceite regex continua sendo um caminho direto. Para regras simples executadas na borda da Cloudflare, use a tela atual de Single Redirects e confira o formato exigido por ela. Page Rules foi a ferramenta do meu exemplo; hoje vale escolher a regra de acordo com a tela e o plano que você tem.