Alibaba Cloud Dynamic Content Delivery Network (DCDN) vous permet de réécrire les URI d'origine. La fonctionnalité de réécriture d'URI s'applique aux points de présence (POP) DCDN sans affecter les services internes de DCDN ni les clés de cache. Cette rubrique explique comment configurer la réécriture d'URL d'origine.
Scénarios
Si une ressource est déplacée sur le serveur d'origine, son URI change également. Si les requêtes des utilisateurs utilisent l'URI d'origine, DCDN doit réécrire l'URL pour rediriger les requêtes vers la nouvelle URL.
Par exemple, un fichier image est déplacé du répertoire /download/ vers le répertoire /image/.
Fonctionnement
Les POP font correspondre les URI de requête avec les URI des ressources demandées sur le serveur d'origine, selon les règles de réécriture d'URI. Ensuite, les requêtes ou certains paramètres de requête sont redirigés vers le serveur d'origine.
Dans une règle de réécriture, si vous définissez le paramètre Flag sur None ou Break, seul le chemin d'accès à la ressource dans l'URL est réécrit.

Si vous définissez le paramètre Flag sur enhance break, le chemin d'accès à la ressource et la chaîne de requête sont réécrits.

Notes d'utilisation
Vous pouvez configurer jusqu'à 50 règles de origin URI rewrite par nom de domaine.
Le système exécute les règles de réécriture listées dans l'onglet Back-to-origin URL Rewrite de haut en bas. Une modification de cet ordre peut entraîner un résultat de réécriture différent.
La fonctionnalité origin URI rewrite diffère de la fonctionnalité rewrite disponible sur la page Cache. La fonctionnalité rewrite s'applique aux POP DCDN, affecte les services internes de DCDN et réécrit les clés de cache. La fonctionnalité origin URI rewrite fonctionne au niveau des POP DCDN qui communiquent avec les serveurs d'origine et n'affecte pas les services internes de DCDN ni ne réécrit les clés de cache.
Si vous définissez le paramètre Flag d'une URI rewrite rule sur enhance break, les paramètres de réécriture peuvent entrer en conflit avec ceux de la fonctionnalité de filtrage des paramètres. Pour filtrer les paramètres, choisissez dans le volet de navigation de gauche de la console DCDN. Si vous configurez ces deux fonctionnalités pour le même nom de domaine, assurez-vous que les paramètres n'entrent pas en conflit. Pour plus d'informations, consultez la rubrique Filtrage des paramètres.
Créer une règle de réécriture d'URI d'origine
Connectez-vous à la console DCDN.
Dans le volet de navigation de gauche, cliquez sur Domain Names.
Sur la page Domain Names , localisez le nom de domaine à gérer et cliquez sur Configure dans la colonne Actions .
Dans l'arborescence de navigation de gauche du nom de domaine, cliquez sur Origin Fetch.
Cliquez sur l'onglet URI Rewrite .
Sous l'onglet URI Rewrite , cliquez sur Add .
-
Dans la boîte de dialogue URI Rewrite, configurez les paramètres Original URI, Final URI et Flag. Le tableau suivant décrit ces paramètres

Paramètre
Exemple
Description
Original URI
^/hello$
Saisissez une URI. L'URI doit commencer par une barre oblique (/) et ne peut pas contenir http:// ni de noms de domaine. L'URI doit contenir des expressions régulières compatibles Perl (PCRE).
Final URI
/hello/test
Saisissez une URI. L'URI doit commencer par une barre oblique (/) et ne peut pas contenir http:// ni de noms de domaine. Les PCRE sont prises en charge.
Flag
None
Si vous configurez plusieurs règles de réécriture d'URI, DCDN fait correspondre les requêtes avec les règles de haut en bas.
break
Si vous configurez plusieurs règles de réécriture d'URI et que la règle actuelle correspond, les autres règles sont ignorées.
Cette option réécrit uniquement le chemin d'accès à la ressource dans l'URI. Les paramètres d'URL restent inchangés. Vous pouvez utiliser la fonctionnalité de réécriture des paramètres pour réécrire les paramètres d'URL.
enhance_break
Si vous configurez plusieurs règles de réécriture d'URI et que la règle actuelle correspond, les autres règles sont ignorées.
Par rapport à Break, enhance break réécrit les paramètres d'URL. Toutefois, les paramètres de réécriture peuvent entrer en conflit avec ceux de la fonctionnalité décrite dans la rubrique Réécriture des paramètres d'URL dans les requêtes vers l'origine . Si vous souhaitez activer les deux fonctionnalités, assurez-vous que les paramètres n'entrent pas en conflit.
-
Cliquez sur OK pour appliquer la règle.
Pour modifier ou supprimer une règle de réécriture, localisez la règle sous l'onglet URI Rewrite et cliquez sur Modify ou Delete dans la colonne Actions.
Exemples de configuration
-
Example 1: Apply a rule whose flag is set to None.
Original URI
^/hello$
Final URI
/index.html
Flag
None
Résultat attendu
Requête d'origine :
http://aliyundoc.com/helloRequête finale :
http://aliyundoc.com/index.htmlLe système continue de faire correspondre la requête avec les autres règles de réécriture d'URI listées sous l'onglet URI Rewrite .
-
Example 2: Apply a rule whose flag is set to Break.
Original URI
^/hello.jpg$
Final URI
/image/hello.jpg
Flag
break
Description
Requête d'origine :
http://example.com/hello.jpgRequête finale :
http://example.com/image/hello.jpgLe système arrête la mise en correspondance de la requête avec les autres règles de réécriture d'URI listées sous l'onglet URI Rewrite .
-
Example 3: Apply a rule whose flag is set to enhance break.
Original URI
^/hello.jpg?code=123$
Final URI
/image/hello.jpg?code=321
Flag
enhance break
Résultat attendu
Requête d'origine :
http://example.com/hello.jpg?code=123Requête finale :
http://example.com/image/hello.jpg?code=321Le système arrête la mise en correspondance de la requête avec les autres règles de réécriture d'URI listées sous l'onglet URI Rewrite .
-
Example 4: Add a URI prefix to the root directory if the file name is a variable
Ajoutez le chemin /image à l'URI de tous les fichiers du répertoire racine. Par exemple, réécrivez /xxx dans les URI en /image/xxx. Dans cet exemple, xxx représente un nom de fichier, tel que /hello.jpg ou /hello.html.
Original URI
^(.*)$
Remarque^(.*)$ correspond à n'importe quels caractères, et une paire de parenthèses () représente un groupe. Vous pouvez utiliser $1 dans l'URI finale pour appeler les variables du groupe.
Final URI
/image$1
Remarque$1 est le premier modèle de remplacement spécial, qui représente le contenu correspondant à l'expression dans la première paire de parenthèses () d'une expression régulière. $2 est le deuxième modèle de remplacement spécial, qui représente le contenu correspondant à l'expression dans la deuxième paire de parenthèses (). $n représente le nième modèle de remplacement spécial.
Flag
break
Résultat attendu
Requête d'origine :
http://example.com/hello.jpgRequête finale :
http://example.com/image/hello.jpgRequête d'origine :
http://example.com/hello.htmlRequête finale :
http://example.com/image/hello.html
Le système arrête la mise en correspondance de la requête avec les autres règles de réécriture d'URI listées sous l'onglet URI Rewrite .
-
Example 5: Add a URI prefix to a specific directory if the file name is a variable.
Ajoutez le chemin /image à l'URI de tous les fichiers du répertoire /live. Par exemple, réécrivez /live/xxx dans les URI en /image/live/xxx. Dans cet exemple, xxx représente un nom de fichier, tel que /live/hello.jpg ou /live/hello.html.
Original URI
^/live/(.*)$
Final URI
/image/live/$1
Flag
break
Résultat attendu
Requête d'origine :
http://example.com/live/hello.jpgRequête finale :
http://example.com/image/live/hello.jpgRequête d'origine :
http://example.com/live/hello.htmlRequête finale :
http://example.com/image/live/hello.html
Le système arrête la mise en correspondance de la requête avec les autres règles de réécriture d'URI listées sous l'onglet URI Rewrite .
-
Example 6: Apply only the rule whose flag is set to None when multiple rules are configured.
Créez deux règles de réécriture d'URI, comme illustré dans la figure suivante.

Résultat attendu :
Requête d'origine :
http://example.com/image_01.png-
Requête finale :
http://example.com/image/image_02.pngRemarqueLa requête correspond à la première règle et est réécrite en
http://example.com/image_02.png. Ensuite, la requête correspond à la deuxième règle et est réécrite enhttp://example.com/image/image_02.png. -
Example 7: Apply the rule whose flag is set to Break when multiple rules are configured.
Créez deux règles de réécriture d'URI, comme illustré dans la figure suivante.

Résultat attendu :
Requête d'origine :
http://example.com/image_01.png-
Requête finale :
http://example.com/image_02.pngRemarqueLa requête correspond à la première règle et est réécrite en
http://example.com/image_02.png. Les autres règles sont ignorées.