Pular para conteúdo

Reescrita de URL

Visão geral

A funcionalidade de Reescrita de URL permite transformar partes das requisições recebidas (path ou query params) antes que elas sejam encaminhadas para a origin. Use reescritas para compatibilizar caminhos antigos, padronizar URLs para origins diferentes ou para ocultar parâmetros internos do backend.

Visão geral da reescrita de URL

Comportamento básico

  • Ordem: as regras são avaliadas de cima para baixo; reordene-as se necessário usando o controle de arrastar.
  • Condições: cada regra pode ter uma ou mais condições combinadas por E / OU.

Campos e operadores

Os campos definem onde será aplicado o pattern matching, que podem ser:

Campos Representação de busca
URI Completa https://example.com.br/file.mp4?device=mobile
URI /2024/file.mp4?device=mobile&si=plkOdwgB
Caminho da URI /files/2024/05/10/file_example.mp4

Os operadores são as condições que quando em conjunto vão gerar o pattern matching, que podem ser:

Operadores
Contém
Começa com
Termina com
Não começa com
Não termina com
É igual a
Não é igual a
Não contém

O Valor é algum trecho da url que será comparado ao campo escolhido.

Quando usar

  • Migrando paths entre backends sem alterar clientes.
  • Normalizar URLs (remover ou adicionar prefixos).
  • Redirecionar requests por parâmetro (ex.: versão do cliente).

Tipos de reescrita

  • Path rewrite: altera o caminho da URI (ex.: /old/path/video.m3u8/v2/video.m3u8).
  • Query param rewrite: adiciona, remove ou renomeia parâmetros de query.

Passo a passo — criar uma regra de Reescrita de URL

  1. Abra a tela de criação/edição da instância e navegue até a aba URL.
  2. Clique em ADICIONAR REGRA para adicionar uma nova regra.
  3. Escolha o tipo de reescrita: Path e/ou Query.
  4. Defina as condições: por exemplo, URI Completa contém device=mobile e Caminho da URI não começa com /path.
  5. Para Path:
    • Informe o tipo se é estático ou dinâmico.
    • Exemplo visual:
      Reescrita de path
  6. Para Query:
    • Informe o tipo se é estático ou dinâmico.
    • Informe o valor desejado de substituição.
    • Exemplo visual:
      Reescrita de parâmetro de query
  7. Para Redirecionamento:

    • Forçar direcionamento (opcional)
  8. Salve a regra e aguarde o provisionamento.

Exemplo prático — converter /old/... para /v2/...

  • Condição: Caminho da URI começa com /old/.
  • Ação (Path rewrite): aplicar regex ^/old/(.+) com substituição /v2/$1.

Testar com curl:

curl -i "https://<seu-dominio>/old/content/playlist.m3u8"

Verifique se a origem recebeu o request reescrito (caminho /v2/content/playlist.m3u8) e se a resposta traz os headers esperados.

Boas práticas

  • Teste regras com exemplos reais antes de ativar em produção.
  • Prefira regras específicas (paths exatos ou regex bem definidos) para evitar reescritas indesejadas.

Resolução de problemas

  • Se a reescrita não ocorrer, verifique a ordem das regras e as condições associadas.
  • Valide o regex de origem e a sintaxe de substituição.
  • Para depuração, registre/log os caminhos recebidos e reescritos na origem.