Tous les produits
Search
Centre de documentation

CDN:Origin Path Rewrite

Dernière mise à jour :Sep 21, 2026

Alibaba Cloud CDN prend en charge la réécriture d'URL. Une réécriture affecte uniquement l'URL utilisée pour les requêtes de récupération auprès de l'origine et n'a aucun impact sur le routage interne du CDN ni sur la clé de cache.

Fonctionnement

Les règles Origin Path Rewrite vous permettent de modifier le chemin de la requête afin qu'il corresponde à l'emplacement réel de la ressource sur votre serveur d'origine. Cela garantit que les nœuds POP peuvent récupérer les ressources avec précision ou transmettre des chaînes de requête spécifiques à l'origine.

  • Si le paramètre Flag est défini sur None ou break, seul le chemin de la ressource dans l'URL est réécrit.

    无标题文档-流程图

  • Si le paramètre Flag est défini sur enhance break, le chemin de la ressource et la chaîne de requête peuvent tous deux être réécrits.

    zh-enhance_break

Notes d'utilisation

  • Vous pouvez configurer jusqu'à 50 règles Origin Path Rewrite pour un seul nom de domaine.

  • Les règles sont appliquées de haut en bas. Leur ordre influence le résultat final de la réécriture.

  • Lorsque vous configurez des règles Origin Path Rewrite, elles peuvent entrer en conflit avec la fonctionnalité Ignorer les paramètres disponible sous l'onglet Domain Names > Optimization. Évitez les conflits de configuration.

  • Si vous configurez à la fois Origin Path Rewrite et des règles d'origine conditionnelles, la règle Origin Path Rewrite risque de modifier le chemin de l'URL de récupération d'origine. Le chemin de requête reçu par le serveur d'origine peut alors différer du chemin attendu, ce qui entraîne une erreur 404. Pour résoudre ce problème, désactivez temporairement la règle Origin Path Rewrite afin de vérifier si la requête fonctionne comme prévu. Si vous devez utiliser les deux fonctionnalités, ajustez les priorités et les conditions de vos règles pour éviter les réécritures de chemin involontaires.

Différences entre Access URL Rewrite et Origin Path Rewrite

Fonctionnalité

Objet concerné

Expérience client

Scénario d'application

Réécrire les URL d'accès

Affecte l'URL à laquelle le client accède. Elle modifie également l'URL utilisée par le nœud DCDN pour la récupération auprès de l'origine.

  • Si la règle d'exécution est redirect, le client envoie une nouvelle requête d'accès en utilisant l'URL de redirection.

  • Si la règle d'exécution est break, l'URL visible par le client reste identique à l'URL d'accès réelle. Aucun changement n'est perceptible.

Couramment utilisé pour migrer ou mapper des URL d'un ancien nom de domaine vers un nouveau. Cette fonctionnalité permet également de fournir des URL différentes aux clients mobiles et PC.

Exemple : Lorsqu'un client accède à old.example.com/hello, l'URL d'accès est réécrite en new.example.com/hello.

Réécrire le chemin de récupération d'origine

Affecte l'URL utilisée par le nœud DCDN pour la récupération auprès de l'origine. L'URL à laquelle le client accède ne change pas.

L'URL visible par le client reste identique à l'URL d'accès réelle. Aucun changement n'est perceptible.

Couramment utilisé pour masquer la structure réelle des URL du serveur d'origine afin de protéger ses informations. Cette fonctionnalité sert également au mappage d'URL, permettant au nœud DCDN de récupérer du contenu depuis différents dossiers du serveur d'origine.

Exemple : Lorsqu'un client accède à cdn.example.com/hello, l'URL de récupération d'origine est réécrite en origin.example.com/source/hello.

Schéma de la fonctionnalité Access URL Rewrite

image
  1. Le client envoie une requête à un nœud DCDN. L'URL de la requête est old.example.com/hello.

  2. Après réception de la requête, le nœud DCDN applique la règle de réécriture d'URL. Le nœud DCDN inclut la nouvelle URL, new.example.com/hello, dans l'en-tête Location de la réponse 302 envoyée au client.

  3. Après réception de la réponse 302, le client envoie une requête vers la nouvelle URL.

  4. Le nœud DCDN vérifie son cache. Si le cache contient le contenu correspondant à l'URL réécrite, le nœud renvoie directement le contenu au client. Sinon, le nœud DCDN envoie une requête au serveur d'origine en utilisant l'URL réécrite, new.example.com/hello.

  5. Le serveur d'origine reçoit la requête et renvoie le contenu de la réponse au nœud DCDN.

  6. Le nœud DCDN met en cache le contenu de la réponse et le renvoie au client.

Schéma de la fonctionnalité Origin Path Rewrite

image
  1. Le client envoie une requête à un nœud DCDN. L'URL de la requête est cdn.example.com/files/hello.txt.

  2. Après réception de la requête, le nœud DCDN vérifie son cache. Si le cache contient le contenu correspondant à l'URL de la requête, le nœud renvoie directement le contenu au client. Sinon, le nœud DCDN applique la règle de réécriture de l'URL de récupération d'origine. Il réécrit l'URL de récupération d'origine en origin.example.com/secret/files/hello.txt et envoie une requête au serveur d'origine.

  3. Après réception de la requête, le serveur d'origine renvoie le contenu de la réponse au nœud DCDN.

  4. Le nœud DCDN met en cache le contenu de la réponse et le renvoie au client.

Configurer la réécriture du chemin d'origine

  1. Connectez-vous à la console CDN.

  2. Dans le volet de navigation de gauche, cliquez sur Domain Names.

  3. Sur la page Domain Names, localisez le nom de domaine cible et cliquez sur Manage dans la colonne Actions.

  4. Dans le volet de navigation de gauche dédié au nom de domaine, cliquez sur Origin Fetch.

  5. Cliquez sur l'onglet Origin Path Rewrite.

  6. Cliquez sur Add. Configurez les paramètres Path to Be Rewritten, Target Path et Flag.

    Paramètre

    Exemple

    Description

    Path to Be Rewritten

    ^/hello$

    Un chemin d'URL commençant par une barre oblique (/) et n'incluant pas http:// ni de nom de domaine. Vous devez utiliser un motif PCRE (Perl Compatible Regular Expressions).

    Target Path

    /hello/test

    Un chemin d'URL commençant par une barre oblique (/) et n'incluant pas http:// ni de nom de domaine. La syntaxe PCRE est prise en charge.

    Flag

    None

    Si vous configurez plusieurs règles, après la correspondance et l'exécution de cette règle, les règles suivantes sont également exécutées séquentiellement.

    break

    • Si vous configurez plusieurs règles et que l'URL de la requête correspond à cette règle, aucune règle suivante n'est évaluée.

    • Seul le chemin de la ressource de l'URL est modifié, pas les paramètres de l'URL. Par conséquent, cela n'affecte pas la réécriture des paramètres d'URL par la fonctionnalité Origin Path Rewrite.

    enhance break

    • Si vous configurez plusieurs règles et que l'URL de la requête correspond à cette règle, aucune règle suivante n'est évaluée.

    • Similaire à break, mais cet indicateur réécrit également la chaîne de requête. Cela peut entrer en conflit avec la fonctionnalité de réécriture des paramètres de récupération d'origine. Si vous utilisez les deux fonctionnalités, assurez-vous que vos configurations n'entrent pas en conflit.

  7. Cliquez sur OK pour appliquer la règle.

    Vous pouvez également cliquer sur Modify ou Delete dans la liste des règles de l'onglet Origin Path Rewrite pour gérer les règles existantes.

Exemples de configuration

  • Exemple 1 : Flag défini sur None

    Path to Be Rewritten

    ^/hello$

    Target Path

    /index.html

    Flag

    None

    Résultat

    Requête d'origine : http://example.com/hello

    Requête de récupération d'origine après réécriture : http://example.com/index.html

    La requête est ensuite comparée aux règles suivantes de la liste Origin Path Rewrite.

  • Exemple 2 : Flag défini sur break

    Path to Be Rewritten

    ^/hello.jpg$

    Target Path

    /image/hello.jpg

    Flag

    break

    Résultat

    Requête d'origine : http://example.com/hello.jpg

    Requête de récupération d'origine après réécriture : http://example.com/image/hello.jpg

    Aucune règle suivante de la liste Origin Path Rewrite n'est évaluée.

  • Exemple 3 : Flag défini sur enhance break

    Path to Be Rewritten

    ^/hello.jpg?code=123$

    Target Path

    /image/hello.jpg?code=321

    Flag

    enhance break

    Résultat

    Requête d'origine : http://example.com/hello.jpg?code=123

    Requête de récupération d'origine après réécriture : http://example.com/image/hello.jpg?code=321

    Aucune règle suivante de la liste Origin Path Rewrite n'est évaluée.

  • Exemple 4 : Ajout d'un préfixe aux chemins variables dans le répertoire racine

    Par exemple, vous pouvez réécrire un chemin d'URL tel que /xxx, où xxx est un nom de fichier variable (par exemple, /hello.jpg ou /hello.html), en /image/xxx. Cela insère le préfixe /image dans le chemin pour tout fichier situé dans le répertoire racine.

    Path to Be Rewritten

    ^(.*)$

    Remarque

    ^ correspond au début de la chaîne. (.) est un groupe de capture, où . correspond à n'importe quel caractère unique sauf un saut de ligne, et correspond au caractère ou groupe précédent zéro fois ou plus. Vous pouvez utiliser $1 dans le Target Path pour faire référence au contenu capturé par ce groupe. $ correspond à la fin de la chaîne. Par conséquent, ^(.)$ correspond à toute la chaîne du début à la fin et capture tous les caractères, à l'exception des sauts de ligne, dans un groupe. Par exemple, pour la chaîne "hello world", ^(.)$ correspond à toute la chaîne et capture "hello world" dans le premier groupe.

    Target Path

    /image$1

    Remarque

    /image correspond à la chaîne "/image". $1 fait référence au contenu du premier groupe de capture, $2 fait référence au contenu du deuxième groupe de capture, et ainsi de suite. Par conséquent, /image$1 signifie que la chaîne "/image" est immédiatement suivie du contenu du premier groupe de capture. Par exemple, si le contenu du premier groupe de capture est "abc", /image$1 correspond à la chaîne "/imageabc". Notez que $1 fait référence au contenu du groupe de capture, et non à la chaîne littérale "$1". Pour correspondre à la chaîne littérale "$1", vous devez utiliser un caractère d'échappement, tel que "\$1".

    Flag

    break

    Résultat

    • Requête d'origine : http://example.com/hello.jpg

      Requête de récupération d'origine après réécriture : http://example.com/image/hello.jpg

    • Requête d'origine : http://example.com/hello.html

      Requête de récupération d'origine après réécriture : http://example.com/image/hello.html

    Aucune règle suivante de la liste Origin Path Rewrite n'est évaluée.

  • Exemple 5 : Ajout d'un préfixe aux chemins sous un répertoire spécifique

    Par exemple, vous pouvez réécrire une URL contenant /live/xxx, où xxx représente n'importe quel nom de fichier (par exemple, hello.jpg ou hello.html), en /image/live/xxx. Cela insère le préfixe /image dans le chemin pour tout fichier situé sous le répertoire /live.

    Path to Be Rewritten

    ^/live/(.*)$

    Target Path

    /image/live/$1

    Flag

    break

    Résultat

    • Requête d'origine : http://example.com/live/hello.jpg

      Requête de récupération d'origine après réécriture : http://example.com/image/live/hello.jpg

    • Requête d'origine : http://example.com/live/hello.html

      Requête de récupération d'origine après réécriture : http://example.com/image/live/hello.html

    Aucune règle suivante de la liste Origin Path Rewrite n'est évaluée.

  • Exemple 6 : Enchaînement de règles avec l'indicateur None

    Prenons deux règles de réécriture activées. La règle 1 réécrit ^/image_01.png$ en /image_02.png avec le paramètre Flag défini sur None. La règle 2 réécrit ^(.*)$ en /image$1 avec le paramètre Flag défini sur None.

    Résultat :

    • Requête d'origine : http://example.com/image_01.png

    • Requête de récupération d'origine après réécriture : http://example.com/image/image_02.png

      Remarque

      La requête correspond d'abord à la règle 1 et est réécrite en http://example.com/image_02.png. Comme le paramètre Flag est défini sur None, le chemin réécrit est ensuite évalué par rapport à la règle 2, qui correspond également. Le chemin est réécrit une seconde fois, ce qui donne le chemin final : http://example.com/image/image_02.png.

  • Exemple 7 : Arrêt de l'évaluation des règles avec break

    Prenons deux règles de réécriture activées. La règle 1 réécrit ^/image_01.png$ en /image_02.png avec le paramètre Flag défini sur break. La règle 2 réécrit ^(.*)$ en /image$1 avec le paramètre Flag défini sur None. Lorsqu'une requête correspond à la règle 1, le traitement s'arrête et les règles suivantes ne sont pas évaluées car le paramètre Flag est défini sur break.

    Résultat :

    • Requête d'origine : http://example.com/image_01.png

    • Requête de récupération d'origine après réécriture : http://example.com/image_02.png

      Remarque

      La requête correspond d'abord à la règle 1 et est réécrite en http://example.com/image_02.png. Comme le paramètre Flag de la règle 1 est défini sur break, le traitement s'arrête et aucune règle suivante n'est évaluée.