Se os caminhos dos recursos de origem mudarem, mas as URLs das requisições permanecerem as mesmas, configure regras de redirecionamento nos POPs do Edge Security Acceleration (ESA) para encaminhar os clientes ao destino correto. Essa prática reduz as requisições de volta à origem e melhora o desempenho de acesso.
Como funciona
O processo de redirecionamento ocorre da seguinte forma:
Um cliente solicita um recurso.
O POP do ESA compara a requisição com as regras de redirecionamento. Se houver correspondência, ele retorna um código de status de redirecionamento (por exemplo, 301 ou 302) com a URL de destino no cabeçalho de resposta Location.
O cliente segue o cabeçalho Location e solicita o recurso na nova URL.
Códigos de status e cenários
|
Código de status |
Significado |
Tratamento de método |
Cenários comuns |
|
301 |
Moved Permanently |
Requisições GET permanecem inalteradas. Outros métodos podem ser convertidos para GET. |
O recurso foi movido permanentemente para uma nova URL. Os mecanismos de busca atualizam seus índices. |
|
302 |
Found |
Requisições GET permanecem inalteradas. Outros métodos podem ser convertidos para GET. |
O recurso está temporariamente em uma URL diferente. Os mecanismos de busca mantêm o link original. |
|
303 |
See Other |
Requisições GET permanecem inalteradas. Outros métodos são forçados para GET e o corpo da requisição é descartado. |
Redirecionamento após PUT ou POST para evitar envios duplicados ao atualizar a página. |
|
307 |
Temporary Redirect |
O método e o corpo da requisição permanecem inalterados. |
Redirecionamento temporário. Prefira este código em vez do 302 quando seu site utilizar métodos diferentes de GET. |
|
308 |
Permanent Redirect |
O método e o corpo da requisição permanecem inalterados. |
Redirecionamento permanente que preserva o método HTTP e o corpo da requisição. Utilize para migrações de API ou refatoração de sites que exigem consistência de método. |
Para redirecionar chamadas de API ou requisições que não sejam GET (como POST ou PUT) preservando o método e o corpo da requisição, utilize o código de status 307 (temporário) ou 308 (permanente). Os códigos de status 301 e 302 podem converter requisições não-GET para GET, resultando em perda de dados.
Evite configurar redirecionamentos em caminhos de upload com alto tráfego (como /api/upload). Para esses caminhos, considere separá-los em um domínio dedicado ou interceptar as requisições via WAF para evitar tráfego anormal de volta à origem causado pelos redirecionamentos.
Criar uma regra de redirecionamento
O ESA avalia as regras na ordem de priority e aplica a primeira correspondência encontrada.
No console do ESA, escolha Site Management. Na coluna Website, clique em no site desejado.
No painel de navegação à esquerda, escolha . Clique em Create Rule.
-
Na página Add Redirect Rule, defina as configurações abaixo e clique em OK:
Insira um Rule Name.
Na seção If requests match..., defina as condições de correspondência da requisição. Para mais informações, consulte Components of a rule expression.
-
URL Redirect:

Parâmetro
Tipo
Descrição
Redirect Type
Static
Redireciona para uma URL fixa. Por exemplo, defina URL como
https://test.example.com/image/1.jpg?test=123.Dynamic
Constrói a URL de destino dinamicamente com uma expression. Por exemplo, para substituir o nome do host na URL da requisição mantendo o caminho original, defina Expression como
concat("https://www.example.com", http.request.uri.path). Utilize uma expressão válida construída com funções suportadas. Inserir diretamente uma string simples contendo variáveis causará falha ao salvar.Padrões comuns de expressões dinâmicas:
-
Preservar o caminho original (de non-www para www, de HTTP para HTTPS) — Utilize
concat("https://target-domain.com", http.request.uri.path)para concatenar o domínio de destino com o caminho da requisição original. Use este padrão quando precisar manter o caminho durante o redirecionamento. -
Remover ou substituir um prefixo de caminho — Utilize
concat("https://img.example.com", regex_replace(http.request.uri.path, "^/data", ""))para remover o prefixo/datado caminho original e redirecionar para o novo domínio. Combineregex_replacecomconcatpara transformar o caminho.
Status Code
O código de status HTTP retornado para o redirecionamento. Valores válidos: 301 (padrão), 302, 303, 307 e 308. Para detalhes, consulte Status codes and scenarios.
Retain Query String
Define se a string de consulta da requisição original deve ser levada para a URL de destino. Desativado por padrão (a string de consulta original é descartada).
Quando Retain Query String está ativado:
-
Se a requisição original possuir uma string de consulta, ela substituirá a string de consulta da URL de redirecionamento.
-
Se a requisição original não possuir string de consulta, a string de consulta da URL de redirecionamento será preservada.
Para exemplos de configuração, consulte Configuration examples.
-
Exemplos de configuração
Exemplos de redirecionamento estático
Cenário 1: A requisição não tem string de consulta, a URL de redirecionamento possui string de consulta
A requisição contém string de consulta: Não
A URL de redirecionamento configurada contém string de consulta: Sim
Preservar string de consulta: Ativado ou desativado
Exemplo de URL de requisição:
http://test.example.com/1.jpgURL de redirecionamento configurada:
http://test.example.com/image/1.jpg?test=123Location real do redirecionamento:
http://test.example.com/image/1.jpg?test=123Observações: Como não há string de consulta na requisição original, a string de consulta da URL configurada é utilizada independentemente da configuração de preservação de string de consulta.
Cenário 2: Ambas as URLs possuem strings de consulta, Preserve query string ativado
A requisição contém string de consulta: Sim
A URL de redirecionamento configurada contém string de consulta: Sim
Preservar string de consulta: Ativado
Exemplo de URL de requisição:
http://test.example.com/1.jpg?test=321URL de redirecionamento configurada:
http://test.example.com/image/1.jpg?test=123Location real do redirecionamento:
http://test.example.com/image/1.jpg?test=321Observações: Com a preservação de string de consulta ativada, apenas a string de consulta da requisição original é mantida; os parâmetros de consulta da URL configurada são descartados.
Cenário 3: Ambas as URLs possuem strings de consulta, Preserve query string desativado
A requisição contém string de consulta: Sim
A URL de redirecionamento configurada contém string de consulta: Sim
Preservar string de consulta: Desativado
Exemplo de URL de requisição:
http://test.example.com/1.jpg?test=321URL de redirecionamento configurada:
http://test.example.com/image/1.jpg?test=123Location real do redirecionamento:
http://test.example.com/image/1.jpg?test=123Observações: Com a preservação de string de consulta desativada, apenas a string de consulta da URL configurada é mantida; os parâmetros de consulta da requisição original são descartados.
Cenário 4: A requisição possui string de consulta, a URL de redirecionamento não possui, Preserve query string ativado
A requisição contém string de consulta: Sim
A URL de redirecionamento configurada contém string de consulta: Não
Preservar string de consulta: Ativado
Exemplo de URL de requisição:
http://test.example.com/1.jpg?test=321URL de redirecionamento configurada:
http://test.example.com/image/1.jpgLocation real do redirecionamento:
http://test.example.com/image/1.jpg?test=321Observações: Com a preservação de string de consulta ativada, a string de consulta original é anexada à URL configurada mesmo que esta não possua parâmetros de consulta.
Cenário 5: A requisição possui string de consulta, a URL de redirecionamento não possui, Preserve query string desativado
A requisição contém string de consulta: Sim
A URL de redirecionamento configurada contém string de consulta: Não
Preservar string de consulta: Desativado
Exemplo de URL de requisição:
http://test.example.com/1.jpg?test=321URL de redirecionamento configurada:
http://test.example.com/image/1.jpgLocation real do redirecionamento:
http://test.example.com/image/1.jpgObservações: Com a preservação de string de consulta desativada, a string de consulta original é descartada e apenas a URL configurada é retornada.
Exemplos de redirecionamento dinâmico
Cenário 1: Preserve query string desativado
Preservar string de consulta: Desativado
Exemplo de URL de requisição:
https://test.example.com/image/1.jpg?test=123Expressão:
concat("https://www.example.com", http.request.uri.path)Location real do redirecionamento:
https://www.example.com/image/1.jpg-
Observações:
Com a preservação de string de consulta desativada, o caminho (
/image/1.jpg) é mantido e a string de consulta (?test=123) é descartada.A expressão concatena apenas nome do host e caminho; os parâmetros de consulta não são tratados.
Cenário 2: Preserve query string ativado
Preservar string de consulta: Ativado
Exemplo de URL de requisição:
https://test.example.com/image/1.jpg?test=123Expressão:
concat("https://www.example.com", http.request.uri.path)Location real do redirecionamento:
https://www.example.com/image/1.jpg?test=123-
Observações:
Com a preservação de string de consulta ativada, a string de consulta original é anexada à URL gerada mesmo que a expressão não trate parâmetros de consulta.
A expressão trata apenas a concatenação do caminho; o sistema anexa a string de consulta conforme a configuração.
Cenário 3: Função wildcard_replace, Preserve query string ativado
Preservar string de consulta: Ativado
Exemplo de URL de requisição:
https://www.example.com/image-flower-20250816-1.html?src=cdnExpressão:
wildcard_replace(http.request.full_uri, "https://www.example.com/image-*", "https://www.example.com/${1}")Location real do redirecionamento:
https://www.example.com/flower-20250816-1.html?src=cdn-
Observações:
Com a preservação de string de consulta ativada, o sistema anexa a string de consulta original (ex.:
?src=cdn) à URL de destino.A expressão trata apenas a reescrita do caminho; o sistema repassa a string de consulta conforme a configuração.
Cenário 4: Função wildcard_replace, Preserve query string desativado
Preservar string de consulta: Desativado
Exemplo de URL de requisição:
https://www.example.com/index.html?place=garden&date=20250816Expressão:
wildcard_replace(http.request.full_uri, "https://www.example.com/index.html?place=garden&date=*", "https://www.example.com/flower-${1}-1.html")Location real do redirecionamento:
https://www.example.com/flower-20250816-1.html-
Observações:
Com a preservação de string de consulta desativada, a URL de destino é construída inteiramente pela expressão. Os parâmetros originais (ex.:
place=garden) são usados apenas para correspondência;*captura o valor apósdatee o substitui como${1}.A URL final exclui os parâmetros de consulta originais.
Perguntas frequentes
Como redirecionar entre um domínio raiz (domínio simples) e um domínio www?
A abordagem depende da sua configuração de DNS:
Usando o ESA para redirecionamento: Tanto o domínio raiz quanto o domínio www devem estar conectados ao ESA via registros CNAME ou NS. Mesmo que você configure uma regra de redirecionamento, o domínio de origem deve manter seu registro CNAME para que o ESA reconheça o tráfego recebido. Após conectar ambos os domínios ao ESA, configure a regra de redirecionamento de hostname correspondente nas regras de redirecionamento do ESA.
O domínio raiz possui registros MX e não pode usar CNAME (conflito de DNS): Utilize o recurso de encaminhamento de URL fornecido pelo seu provedor de DNS. Observe que o encaminhamento de URL via DNS suporta apenas HTTP e o tráfego não passa pelo ESA.
Importante: Se você configurou anteriormente um registro de encaminhamento de URL nas suas configurações de DNS, deverá excluir esse registro e adicionar o CNAME do ESA antes de usar as regras de redirecionamento do ESA. Caso contrário, as regras de redirecionamento do ESA não entrarão em vigor.
O que fazer se uma regra de redirecionamento não entrar em vigor ou redirecionar para a URL errada?
Verifique os itens a seguir nesta ordem:
Verifique se a condição de correspondência cobre precisamente o domínio de destino: Por exemplo, se você configurou uma regra apenas para o domínio www, mas os usuários acessam o domínio raiz, adicione uma regra para o domínio raiz ou use um curinga para cobrir ambos.
Confirme se o DNS está corretamente conectado ao ESA: Se estiver usando o redirecionamento do ESA, o domínio deve estar conectado ao ESA via registros CNAME ou NS. Depender exclusivamente da configuração de redirecionamento do servidor de origem ou do encaminhamento de URL via DNS não funcionará.
Verifique se há regras de prioridade maior sobrescrevendo a regra de redirecionamento: Revise a ordem de prioridade das regras e garanta que nenhuma regra anterior esteja interceptando ou modificando a requisição antes que a regra de redirecionamento seja avaliada.
Verifique a sintaxe da expressão dinâmica: A concatenação de URLs requer a função
concat. Inserir uma string bruta com variáveis falhará. Utilize funções de expressão válidas comoconcat,regex_replaceouwildcard_replace.
O que fazer se os redirecionamentos causarem um loop infinito ou tornarem o site inacessível?
Tente as seguintes etapas de solução de problemas:
Verifique se há uma configuração de redirecionamento circular: Confirme se o servidor de origem do domínio www aponta para o domínio raiz enquanto você também configurou um redirecionamento de raiz para www, criando um loop. Restaure a origem para o endereço IP real ou para o endereço de origem upstream original.
Redirecionamento de HTTP para HTTPS: Utilize o recurso Force HTTPS no console do ESA em vez de configurar regras de redirecionamento manualmente. Regras manuais podem entrar em conflito entre si e criar loops de redirecionamento.
Limpe o cache de redirecionamento: Se uma resposta de redirecionamento antiga persistir devido ao cache, limpe o cache no console do ESA e teste novamente o comportamento do redirecionamento.
Verifique se há regras incompatíveis: Confirme se as regras de redirecionamento não estão correspondendo inadvertidamente a endpoints de verificação de integridade ou caminhos internos especiais, o que poderia causar falhas de acesso.
Como configurar redirecionamentos condicionais baseados no tipo de dispositivo (como móvel) ou características da requisição?
Você pode usar cabeçalhos de requisição, como User-Agent, nas condições de correspondência da requisição recebida:
Método de correspondência: Utilize Contains em vez de Equals para correspondência de User-Agent, pois as strings de User-Agent geralmente são longas e variam entre dispositivos.
Exemplo de redirecionamento móvel: Defina a condição de correspondência como
User-Agent Contains Mobileou use palavras-chave comoAndroidouiPhone, e configure a ação como um redirecionamento 302 para o domínio móvel.Controle avançado: Combine caminho, parâmetros de consulta e outras condições para um controle granular do redirecionamento. Por exemplo, redirecione usuários móveis que acessam
/param.example.com, enquanto usuários desktop continuam para o domínio padrão.
Por que a URL do navegador não muda após eu configurar uma regra de redirecionamento?
Se a URL do navegador não mudar, você pode estar usando reescrita de URL em vez de redirecionamento de requisição:
O redirecionamento de requisição do ESA envia uma resposta 3xx ao cliente, o que faz o navegador navegar para a nova URL e atualizar a barra de endereços.
A reescrita de URL modifica apenas o caminho da requisição de origem de forma transparente (proxy no lado do servidor) e não altera a URL do navegador. Se você precisa manter a URL do navegador inalterada enquanto modifica o caminho enviado à origem, utilize o recurso URL Rewrite em vez de regras de redirecionamento.
Observação sobre a região de aceleração: Se a região de aceleração não incluir a China continental, os usuários na China continental podem não experimentar aceleração ao acessar o destino do redirecionamento.
Suporte por plano
|
Recurso |
Entrance |
Pro |
Premium |
Enterprise |
|
Número de regras |
10 |
25 |
50 |
125 |
Documentação relacionada
Os recursos relacionados a regras variam em prioridade efetiva, reentrância e granularidade de aplicação. Para detalhes, consulte Characteristics of rule-based features.