Quando um recurso no servidor de origem é realocado, a URL do recurso em cache nos pontos de presença (POPs) da Dynamic Content Delivery Network (DCDN) é ajustada automaticamente. Se uma requisição do usuário contiver uma URL desatualizada, os POPs reescrevem essa URL e redirecionam a requisição para o novo endereço. Esse processo reduz o número de requisições à origem e melhora o desempenho de acesso do usuário.
Informações básicas
O código de status HTTP 302, também conhecido como mensagem Found, indica que o recurso solicitado foi movido temporariamente. Após a criação de uma regra de reescrita de URI, os POPs da DCDN podem adicionar a nova URI do recurso ao cabeçalho Location na mensagem de resposta HTTP 302. Ao receber essa mensagem, o cliente envia uma requisição para a nova URI.
Além do código de status padrão 302, os POPs também suportam os códigos 303 e 307. Para alterar o código de status de redirecionamento, envie um ticket.
|
Código de status HTTP |
Descrição |
Método de tratamento |
Cenário |
|
302 |
Found |
Requisições GET permanecem inalteradas. Requisições com outros métodos podem ser convertidas para GET. |
Uma página web está temporariamente inacessível por motivos desconhecidos. Nesse caso, os mecanismos de busca não atualizam a URL da página. |
|
303 |
See Other |
Requisições GET permanecem inalteradas. Requisições com outros métodos são convertidas para GET e o corpo da mensagem é descartado. |
Utilizado para redirecionar requisições PUT e POST, evitando redirecionamentos frequentes causados pela atualização da página. |
|
307 |
Temporary Redirect |
Tanto o método da requisição quanto o corpo da mensagem permanecem inalterados. |
Indicado quando uma página web está temporariamente inacessível por motivos desconhecidos e os mecanismos de busca não devem atualizar a URL. Se o site suportar métodos de requisição além de GET, o código 307 é retornado em vez do 302. |
É possível criar até 50 regras de reescrita para um nome de domínio. Caso configure múltiplas regras, elas serão aplicadas na ordem decrescente em que aparecem no console da DCDN.
Cenários
Se um recurso no servidor de origem for movido para um diretório diferente, a URL desse recurso em cache nos POPs será atualizada. Nessa situação, quando um cliente enviar uma requisição para a URL original, a DCDN deverá reescrever e redirecionar a requisição para a nova URL. Por exemplo, um arquivo de imagem movido do diretório /download/ para o diretório /image/.
Procedimento
Faça login no console da DCDN.
No painel de navegação à esquerda, clique em Domain Names.
Na página Domain Names, localize o nome de domínio desejado e clique em Configure.
Na árvore de navegação à esquerda do nome de domínio, clique em Caching.
Clique na aba URL Rewrite.
-
Clique em Add e configure a regra de reescrita conforme suas necessidades de negócio.

Parâmetro
Descrição
URI to Be Rewritten
O caminho deve começar com uma barra (
/) e não incluir o protocolo nem o nome de domínio.Suporta Expressões Regulares Compatíveis com Perl (PCRE). Exemplo:
^/hello$.
Target URI
Se você definir Flag como Break na regra de reescrita, o caminho deve começar com uma barra (
/) e excluir o protocolo e o nome de domínio.Caso defina Flag como Redirect, o caminho poderá conter o protocolo e o nome de domínio. PCRE é suportado. Por exemplo,
$1e$2referenciam strings capturadas entre parênteses no caminho que você deseja reescrever.
Flag
Valores válidos: Redirect e Break.
Redirect: Se a URI de uma requisição corresponder a uma regra especificada, o POP retorna o código de status 302 e redireciona a requisição para a URI indicada pelo cabeçalho Location enviado aos clientes. Os parâmetros da URI original não são modificados. Após a execução da regra atual, a requisição continua sendo avaliada pelas demais regras.
Break: Quando a URI da requisição corresponde à regra definida, o POP redireciona a requisição para a URI de destino sem modificar os parâmetros originais. A execução das regras subsequentes é interrompida após o processamento da regra atual.
-
Clique em OK.
Após criar o recurso de reescrita, use as opções Modify ou Delete para gerenciar a regra exibida na aba URL Rewrite.
Exemplos de configuração
Exemplo 1
Quando um cliente solicita http://example.aliyundoc.com/hello, o caminho da requisição é /hello. O nó da DCDN inclui a nova URL http://example.aliyundoc.com/index.html no cabeçalho Location da resposta 302 e a retorna ao cliente. Em seguida, o cliente envia uma requisição para http://example.aliyundoc.com/index.html.
Para esta regra, Path to Rewrite está definido como ^/hello$, Destination Path como /index.html e Execution Rule como redirect.
Durante um redirecionamento 302, se o cabeçalho Location não incluir protocolo e nome de domínio, o cliente utilizará, por padrão, o protocolo e o nome de domínio da requisição original.
Exemplo 2
Ao solicitar http://example.aliyundoc.com/hello, o caminho da requisição /hello corresponde à expressão regular ^/hello$. O nó da DCDN retorna uma resposta 302 ao cliente. Essa resposta contém a URL de destino https://test.aliyundoc.com/index.html no cabeçalho Location. Após receber a resposta, o cliente envia uma requisição para https://test.aliyundoc.com/index.html.
Regra de configuração: Defina Path to Rewrite como ^/hello$, Destination Path como https://test.aliyundoc.com/index.html e Execution Rule como redirect.
Exemplo 3
Se um cliente requisitar http://www.example.com/cdn/url/http://image.example.com/image/cat.jpg, o caminho conterá /cdn/url/http://, correspondendo à expressão regular ^/cdn/url/http://(.*). O nó da DCDN responde com o código 302. A resposta inclui a URL de destino http://image.example.com/image/cat.jpg no cabeçalho Location. O cliente, então, envia uma nova requisição para http://image.example.com/image/cat.jpg.
Na regra de configuração, defina Destination Path como http://$1 e Execution Rule como redirect.
Exemplo 4
Quando um cliente acessa http://example.aliyundoc.com/stories/index.html#/voice/318, a parte #/voice/318 da URL é um identificador de fragmento do lado do cliente. O navegador não envia essa parte ao servidor. O caminho real da requisição recebido pelo nó da DCDN é /stories/index.html. Portanto, ao configurar a regra de reescrita, defina Path to Rewrite como ^/stories/index\.html$ para corresponder ao caminho anterior ao símbolo #. Em seguida, configure Destination Path com a URL de destino e Execution Rule como Redirect.
Para redirecionar várias URLs de origem que possuem fragmentos # diferentes para URLs de destino distintas, configure uma regra de reescrita separada para cada caminho de origem. Isso é necessário porque o servidor não consegue distinguir URLs com base no conteúdo após o símbolo #.
Exemplo 5
Configurar a página inicial de um subdiretório: Retornar o arquivo padrão da página inicial quando um cliente acessa o nome de um subdiretório é uma necessidade comum em sites. Use a reescrita de URL de acesso para implementar essa funcionalidade na DCDN sem modificar seu servidor de origem. Por exemplo, se o arquivo da página inicial for https://www.example.com/cdn/index.html, após a configuração entrar em vigor, uma requisição do cliente para https://www.example.com/cdn ou https://www.example.com/cdn/ retornará o arquivo da página inicial.
Antes de configurar as regras, certifique-se de que o arquivo da página inicial no subdiretório do servidor de origem esteja acessível. Verifique, por exemplo, se https://www.example.com/cdn/index.html pode ser retornado conforme esperado.
O caminho da requisição do cliente pode ou não terminar com uma barra (/). Assim, configure as duas regras a seguir para abranger ambos os casos:
Regra 1: Defina Path to Rewrite como
^/(.+)/$, Destination Path como/$1/index.htmle Execution Rule como Break.Regra 2: Configure Path to Rewrite com
^/([^.?#]+)$, Destination Path com/$1/index.htmle Execution Rule como Break.
Depois que a configuração entrar em vigor, acesse diretamente um subdiretório, como https://www.example.com/cdn. Se o arquivo da página inicial do subdiretório for retornado conforme esperado, a configuração foi bem-sucedida.