ApsaraVideo VOD lets you rewrite URLs in back-to-origin requests. This rewrite does not affect the internal routing or cache keys of Alibaba Cloud CDN. It applies only when CDN nodes send back-to-origin requests to your origin server. This topic describes how to configure origin URL rewrite.
How it works
POPs match origin paths against the URLs of the requested resources on the origin server based on URL rewrite rules. Then, the requests with specific parameters are redirected to the origin server.
In a rewrite rule, if you set the Flag parameter to None or Break, only the resource path in the URL is rewritten.
If you set the Flag parameter to enhance break, the resource path and query string are rewritten.
Usage notes
You can configure up to 50 Origin Path Rewrite rules for each domain name.
The system runs the rewrite rules that are listed on the Origin Path Rewrite tab in order from top to bottom. A change to this order may lead to a different rewrite result.
The Origin URL Rewrite feature may conflict with the Ignore Parameters feature on the Domain Names > Performance Optimization tab if you configure rules to rewrite URL parameters. When you configure these features, ensure that you avoid conflicts.
Procedure
Log on to the ApsaraVideo VOD console.
In the left-side navigation pane, choose Configuration Management > CDN Configuration > Domain Names.
Click Configure for the target domain name.
In the navigation pane on the left, click Back-to-Origin.
Click the Origin URL Rewrite tab.
Click Add. Then configure the Source Path, Destination Path, and Flag according to your requirements.
ImportantThe system runs rewrite rules sequentially from top to bottom on the Origin URL Rewrite tab. Changing the order of the rules may affect the rewrite results.
Parameter
Example
Description
Path to be rewritten
^/hello$
Enter a URL that starts with a forward slash (/). Do not include http:// or domain names. Perl Compatible Regular Expressions (PCRE) are supported.
Destination Path
/hello/test
Enter a URL that starts with a forward slash (/). The URL cannot contain http:// or a domain name.
Execution rule
Empty
If multiple rules are configured, the system processes them from top to bottom. All matching rules are executed in this order.
break
If multiple URL rewrite rules are set, and a rule is matched, the remaining rules are skipped.
This feature rewrites only the resource path in the URL. The URL parameters remain unchanged. Use the back-to-origin parameter rewrite feature to rewrite URL parameters.
enhance break
If multiple URL rewrite rules are configured, and the request URL matches the current rule, other rules are skipped after the current rule is executed.
Similar to `break`, but adds the ability to rewrite URL parameters, .
Click OK to enable the rewrite rule.
You can click Modify or Delete in the rule list on the Origin URL Rewrite page to modify or delete the currently configured rules.
Configuration examples
Example 1: Apply a rule with the Empty flag
Path to Be Rewritten | ^/hello$ |
Target Path | /index.html |
Flag | None |
Expected result | Original request: Final request: The system continues to match the request against other URL rewrite rules that are listed on the Origin Path Rewrite tab. |
Example 2: Apply a rule with the break flag
Path to Be Rewritten | ^/hello.jpg$ |
Target Path | /image/hello.jpg |
Flag | break |
Expected result | Original request: Final request: The system stops matching the request against other URL rewrite rules that are listed on the Origin Path Rewrite tab. |
Example 3: Apply a rule with the enhance break flag
Path to Be Rewritten | ^/hello.jpg?code=123$ |
Target Path | /image/hello.jpg?code=321 |
Flag | enhance break |
Expected result | Original request: Final request: The system stops matching the request against other URL rewrite rules that are listed on the Origin Path Rewrite tab. |
Example 4: Add a URL prefix to the root directory when the file name is variable
Add the /image path to the URLs of all files in the root directory. For example, rewrite /xxx in URLs to /image/xxx. In this example, xxx is a file name, such as hello.jpg or hello.html.
Path to Be Rewritten | ^(.*)$ Note
|
Target Path | /image$1 Note
|
Flag | break |
Expected result |
The system stops matching the request against other URL rewrite rules that are listed on the origin path Rewrite tab. |
Example 5: Add a URL prefix to a specified directory when the file name is variable
Add the /image path to the URLs of all files in the /live directory. For example, rewrite /live/xxx in URLs to /image/live/xxx. In this example, xxx is a file name, such as hello.jpg or hello.html.
Path to Be Rewritten | ^/live/(.*)$ |
Target Path | /image/live/$1 |
Flag | break |
Expected result |
The system stops matching the request against other URL rewrite rules that are listed on the origin path Rewrite tab. |
Example 6: Apply the Empty flag when multiple rules match
Configure two rules, as shown in the following figure:

Expected result:
Original request:
http://example.com/image_01.pngFinal request:
http://example.com/image/image_02.pngNoteThe request matches the first rule and the origin path is rewritten to
http://example.com/image_02.png. Then, the request matches the second rule and the origin path is rewritten tohttp://example.com/image/image_02.png.
Example 7: Apply the break flag when multiple rules match
Configure two rules, as shown in the following figure:

Expected result:
Original request:
http://example.com/image_01.pngFinal request:
http://example.com/image_02.pngNoteThe request matches the first rule and the request URL is rewritten to
http://example.com/image_02.png. Other rules are skipped.