Todos os produtos
Search
Central de documentação

CDN:**Origin Path Rewrite**

Última atualização: Oct 29, 2026

O Alibaba Cloud CDN suporta a reescrita de URL. Essa reescrita afeta apenas a URL usada nas requisições de origin fetch e não altera o roteamento interno da CDN nem a chave de cache.

Como funciona

As regras de Origin Path Rewrite permitem modificar o caminho da requisição para corresponder à localização real do recurso no servidor de origem. Isso garante que os POPs recuperem os recursos com precisão ou transmitam query strings específicas para a origem.

  • Se a Flag estiver defina como None ou break, o sistema reescreve apenas o caminho do recurso na URL.

    无标题文档-流程图

  • Se a Flag estiver defina como enhance break, é possível reescrever tanto o caminho do recurso quanto a query string.

    zh-enhance_break

Notas de uso

  • É possível configurar até 50 regras de Origin Path Rewrite para um único nome de domínio.

  • O sistema aplica as regras de cima para baixo. A ordem delas afeta o resultado final da reescrita.

  • Ao configurar regras de Origin Path Rewrite, elas podem entrar em conflito com o recurso Ignore parameters na aba Domain Names > Optimization. Evite conflitos de configuração.

  • Ao configurar o Origin Path Rewrite e regras de origem condicional, a regra de Origin Path Rewrite pode alterar o caminho da URL de origin fetch. Isso pode fazer com que o caminho da requisição que o servidor de origem recebe difira do caminho esperado, resultando em um erro 404. Para solucionar o problema, desative temporariamente a regra de Origin Path Rewrite e verifique se a requisição funciona conforme o esperado. Caso precise usar ambos os recursos, ajuste as prioridades e as condições das regras para evitar reescritas de caminho não intencionais.

  • Use variáveis para um controle de configuração mais detalhado. Para mais informações, consulte Variable reference.

Diferenças entre Access URL Rewrite e Origin Path Rewrite

Recurso

Objeto afetado

Experiência do cliente

Cenário de aplicação

Reescrita de URLs de acesso

Afeta a URL que o cliente acessa. Também altera a URL que o nó DCDN usa para origin fetches.

  • Se a regra de execução for redirect, o cliente envia uma nova requisição de acesso usando a URL redirecionada.

  • Se a regra de execução for break, a URL que o cliente vê é a mesma que a URL de acesso real. Não há alteração.

Uso comum: migrar ou mapear URLs de um nome de domínio antigo para um novo. Também serve para fornecer URLs diferentes para clientes móveis e PCs.

Exemplo: Quando um cliente acessa old.example.com/hello, o sistema reescreve a URL de acesso para new.example.com/hello.

Rewrite Origin Fetch Path

Afeta a URL que o nó DCDN usa para origin fetches. A URL que o cliente acessa permanece inalterada.

A URL que o cliente vê é a mesma que a URL de acesso real. Não há alteração.

Uso comum: ocultar a estrutura real de URL do servidor de origem para proteger suas informações. Também serve para mapeamento de URL, fazendo com que o nó DCDN busque conteúdo em diferentes pastas do servidor de origem.

Exemplo: Quando um cliente acessa cdn.example.com/hello, o sistema reescreve a URL de origin fetch para origin.example.com/source/hello.

Diagrama do Access URL Rewrite

image
  1. O cliente envia uma requisição para um nó DCDN. A URL da requisição é old.example.com/hello.

  2. Após o nó DCDN receber a requisição, ele aplica a regra de reescrita de URL. O nó DCDN inclui a nova URL, new.example.com/hello, no cabeçalho Location da resposta 302 que envia ao cliente.

  3. Depois que o cliente recebe a resposta 302, ele envia uma requisição para a nova URL.

  4. O nó DCDN verifica seu cache. Se o cache contiver o conteúdo da URL reescrita, o nó retorna o conteúdo diretamente ao cliente. Caso contrário, o nó DCDN envia uma requisição ao servidor de origem usando a URL reescrita, new.example.com/hello.

  5. O servidor de origem recebe a requisição e retorna o conteúdo da resposta ao nó DCDN.

  6. O nó DCDN armazena o conteúdo da resposta em cache e o retorna ao cliente.

Diagrama do Origin Path Rewrite

image
  1. O cliente envia uma requisição para um nó DCDN. A URL da requisição é cdn.example.com/files/hello.txt.

  2. Após o nó DCDN receber a requisição, ele verifica seu cache. Se o cache contiver o conteúdo da URL da requisição, o nó retorna o conteúdo diretamente ao cliente. Caso contrário, o nó DCDN aplica a regra de reescrita da URL de origin fetch. Ele reescreve a URL de origin fetch para origin.example.com/secret/files/hello.txt e envia uma requisição ao servidor de origem.

  3. Depois que o servidor de origem recebe a requisição, ele retorna o conteúdo da resposta ao nó DCDN.

  4. O nó DCDN armazena o conteúdo da resposta em cache e o retorna ao cliente.

configure o Origin Path Rewrite

  1. Acesse o CDN console.

  2. No painel de navegação à esquerda, clique em Domain Names.

  3. Na página Domain Names, encontre o nome de domínio de destino e clique em Manage na coluna Actions.

  4. No painel de navegação à esquerda do nome de domínio, clique em Origin Fetch.

  5. clique em Origin Path Rewrite.

  6. clique em Add. configure Path to Be Rewritten, Target Path e Flag.

    Parâmetro

    Exemplo

    Descrição

    Path to Be Rewritten

    ^/hello$

    Um caminho de URL que começa com uma barra (/) e não inclui http:// ou um nome de domínio. Use um padrão PCRE (Perl Compatible Regular Expressions).

    Target Path

    /hello/test

    Um caminho de URL que começa com uma barra (/) e não inclui http:// ou um nome de domínio. Suporta PCRE.

    Flag

    None

    Se houver várias regras configuradas, após a correspondência e execução desta regra, o sistema também executa as regras subsequentes em sequência.

    break

    • Se você configurar várias regras e a URL da requisição corresponder a esta regra, o sistema não avalia nenhuma regra subsequente.

    • O sistema modifica apenas o caminho do recurso da URL, e não os parâmetros da URL. Portanto, isso não afeta a reescrita dos parâmetros da URL pelo recurso Origin Path Rewrite.

    enhance break

    • Se você configurar várias regras e a URL da requisição corresponder a esta regra, o sistema não avalia nenhuma regra subsequente.

    • Semelhante a break, mas esta flag também reescreve a query string. Isso pode entrar em conflito com o recurso rewrite origin fetch parameters. Se usar ambos os recursos, garanta que as configurações não entrem em conflito.

  7. Clique em OK para aplicar a regra.

    Também é possível clicar em Modify ou Delete na lista de regras na aba Origin Path Rewrite para gerenciar as regras existentes.

Exemplos de configuração

  • Exemplo 1: defina a Flag como None

    Path to Be Rewritten

    ^/hello$

    Target Path

    /index.html

    Flag

    None

    Resultado

    Requisição original: http://example.com/hello

    Requisição de origin fetch após a reescrita: http://example.com/index.html

    O sistema então compara a requisição com as regras subsequentes na lista de Origin Path Rewrite.

  • Exemplo 2: defina a Flag como break

    Path to Be Rewritten

    ^/hello.jpg$

    Target Path

    /image/hello.jpg

    Flag

    break

    Resultado

    Requisição original: http://example.com/hello.jpg

    Requisição de origin fetch após a reescrita: http://example.com/image/hello.jpg

    O sistema não avalia nenhuma regra subsequente na lista de Origin Path Rewrite.

  • Exemplo 3: defina a Flag como enhance break

    Path to Be Rewritten

    ^/hello.jpg?code=123$

    Target Path

    /image/hello.jpg?code=321

    Flag

    enhance break

    Resultado

    Requisição original: http://example.com/hello.jpg?code=123

    Requisição de origin fetch após a reescrita: http://example.com/image/hello.jpg?code=321

    O sistema não avalia nenhuma regra subsequente na lista de Origin Path Rewrite.

  • Exemplo 4: Prefixar caminhos variáveis no diretório raiz

    Por exemplo, é possível reescrever um caminho de URL como /xxx, em que xxx é um nome de arquivo variável (como /hello.jpg ou /hello.html), para /image/xxx. Isso insere o prefixo /image no caminho de qualquer arquivo no diretório raiz.

    Path to Be Rewritten

    ^(.*)$

    Nota

    ^ corresponde ao início da string. (.) é um grupo de captura, em que . corresponde a qualquer caractere único, exceto um caractere de nova linha, e corresponde ao caractere ou grupo anterior zero ou mais vezes. Use $1 no Target Path para referenciar o conteúdo capturado por este grupo. $ corresponde ao fim da string. Portanto, ^(.)$ corresponde à string inteira do início ao fim e captura todos os caracteres, exceto os de nova linha, em um grupo. Por exemplo, para a string "hello world", ^(.)$ corresponde à string inteira e captura "hello world" no primeiro grupo.

    Target Path

    /image$1

    Nota

    /image corresponde à string "/image". $1 referencia o conteúdo do primeiro grupo de captura, $2 referencia o conteúdo do segundo grupo de captura, e assim por diante. Portanto, /image$1 significa que a string "/image" é imediatamente seguida pelo conteúdo do primeiro grupo de captura. Por exemplo, se o conteúdo do primeiro grupo de captura for "abc", /image$1 corresponde à string "/imageabc". Observe que $1 referencia o conteúdo do grupo de captura, e não a string literal "$1". Para corresponder à string literal "$1", use um caractere de escape, como "\$1".

    Flag

    break

    Resultado

    • Requisição original: http://example.com/hello.jpg

      Requisição de origin fetch após a reescrita: http://example.com/image/hello.jpg

    • Requisição original: http://example.com/hello.html

      Requisição de origin fetch após a reescrita: http://example.com/image/hello.html

    O sistema não avalia nenhuma regra subsequente na lista de Origin Path Rewrite.

  • Exemplo 5: Prefixar caminhos sob um diretório específico

    Por exemplo, é possível reescrever uma URL que contenha /live/xxx, em que xxx representa qualquer nome de arquivo (como hello.jpg ou hello.html), para /image/live/xxx. Isso insere o prefixo /image no caminho de qualquer arquivo sob o diretório /live.

    Path to Be Rewritten

    ^/live/(.*)$

    Target Path

    /image/live/$1

    Flag

    break

    Resultado

    • Requisição original: http://example.com/live/hello.jpg

      Requisição de origin fetch após a reescrita: http://example.com/image/live/hello.jpg

    • Requisição original: http://example.com/live/hello.html

      Requisição de origin fetch após a reescrita: http://example.com/image/live/hello.html

    O sistema não avalia nenhuma regra subsequente na lista de Origin Path Rewrite.

  • Exemplo 6: Encadear regras com a flag None

    Considere duas regras de reescrita ativadas. A Regra 1 reescreve ^/image_01.png$ para /image_02.png com a Flag defina como None. A Regra 2 reescreve ^(.*)$ para /image$1 com a Flag defina como None.

    Resultado:

    • Requisição original: http://example.com/image_01.png

    • Requisição de origin fetch após a reescrita: http://example.com/image/image_02.png

      Nota

      A requisição primeiro corresponde à Regra 1, e o sistema a reescreve para http://example.com/image_02.png. Como a Flag está defina como None, o sistema então avalia o caminho reescrito em relação à Regra 2, que também corresponde. O sistema reescreve o caminho uma segunda vez, resultando no caminho final: http://example.com/image/image_02.png.

  • Exemplo 7: Interromper a avaliação de regras com break

    Considere duas regras de reescrita ativadas. A Regra 1 reescreve ^/image_01.png$ para /image_02.png com a Flag defina como break. A Regra 2 reescreve ^(.*)$ para /image$1 com a Flag defina como None. Quando uma requisição corresponde à Regra 1, o processamento para e o sistema não avalia as regras subsequentes porque a Flag está defina como break.

    Resultado:

    • Requisição original: http://example.com/image_01.png

    • Requisição de origin fetch após a reescrita: http://example.com/image_02.png

      Nota

      A requisição primeiro corresponde à Regra 1, e o sistema a reescreve para http://example.com/image_02.png. Como a Flag da Regra 1 está defina como break, o processamento para e o sistema não avalia nenhuma regra subsequente.