Tous les produits
Search
Centre de documentation

CDN:Origin Path Rewrite

Dernière mise à jour :Aug 18, 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 de réécriture du chemin d'origine 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 points de présence (POP) peuvent récupérer les ressources avec précision ou transmettre des chaînes de requête spécifiques à l'origine.

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

    无标题文档-流程图

  • Si l'option Flag est définie 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 auprès de l'origine. Le chemin de la 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é sert également à 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 auprès de l'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é permet également le mappage d'URL pour que le nœud DCDN récupère le 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 auprès de l'origine est réécrite en origin.example.com/source/hello.

Diagramme de 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. Une fois la réponse 302 reçue, 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.

Diagramme de 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 auprès de l'origine. Il réécrit l'URL de récupération en origin.example.com/secret/files/hello.txt et envoie une requête au serveur d'origine.

  3. Une fois la requête reçue, 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, repérez 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 champs Path to Be Rewritten, Target Path et Flag.

    Paramètre

    Exemple

    Description

    Path to Be Rewritten

    ^/hello$

    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

    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.

    • Semblable à 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 auprès de l'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 auprès de l'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 auprès de l'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 auprès de l'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 de 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 au 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 auprès de l'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 auprès de l'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 de 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 auprès de l'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 auprès de l'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 l'option Flag définie sur None. La règle 2 réécrit ^(.*)$ en /image$1 avec l'option Flag définie sur None.

    Résultat :

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

    • Requête de récupération auprès de l'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 l'option Flag est définie 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 l'option Flag définie sur break. La règle 2 réécrit ^(.*)$ en /image$1 avec l'option Flag définie 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 l'option Flag est définie sur break.

    Résultat :

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

    • Requête de récupération auprès de l'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 l'option Flag de la règle 1 est définie sur break, le traitement s'arrête et aucune règle suivante n'est évaluée.