All Products
Search
Document Center

CDN:Rewrite origin URLs

Last Updated:Jan 05, 2024

Alibaba Cloud CDN allows you to rewrite origin URLs. The URL rewrite feature functions on points of presence (POPs) without affecting the internal services of Alibaba Cloud CDN or the cache keys. This topic describes how to configure origin URL rewrite.

Scenarios

If a resource on the origin server relocates, the URL of the resource changes. When user requests use the original URL, Alibaba Cloud CDN must rewrite the URL so that the requests can be redirected to the new URL.

For example, an image file is moved from the /download/ directory to the /image/ directory.

How it works

POPs match request URLs 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.1

  • If you set the Flag parameter to enhance break, the resource path and query string are rewritten.2

Usage notes

  • You can configure up to 50 origin URL rewrite rules for each domain name.

  • The system runs the rewrite rules that are listed on the Back-to-origin URL Rewrite tab in order from top to bottom. A change to this order may lead to a different rewrite result.

  • The Back-to-origin URL Rewrite feature is different from the Access URL Rewrite feature on the Cache page. The Access URL Rewrite feature functions on POPs that distribute content to users, affects the internal services of Alibaba Cloud CDN, and rewrites cache keys. The Back-to-origin URL Rewrite feature functions on the POPs that communicate with origin servers. It does not affect the internal services of Alibaba Cloud CDN or rewrite cache keys.

  • If you set the Flag parameter of an origin URL rewrite rule to enhance break, the parameter rewrite settings may conflict with the settings of the Ignore Parameters feature. To ignore parameters, choose Domain Names > Performance Optimization in the left-side navigation tree of the specified domain name. If you configure the preceding features for the same domain name, make sure that the features do not conflict with each other.

Create an origin URL rewrite rule

  1. Log on to the Alibaba Cloud CDN console.

  2. In the left-side navigation pane, click Domain Names.

  3. On the Domain Names page, find the domain name that you want to manage and click Manage in the Actions column.

  4. In the left-side navigation tree of the domain name, click Origin Fetch.

  5. Click the Back-to-origin URL Rewrite tab.

  6. Click Add.

  7. Configure Path to Be Rewritten, Target Path, and Flag. The following table describes the parameters.

    改写回源URI

    Parameter

    Example

    Description

    Path to Be Rewritten

    ^/hello$

    Enter a URL that starts with a forward slash (/). The URL cannot contain http:// or domain names. You must use Perl Compatible Regular Expressions (PCRE).

    Target Path

    /hello/test

    Enter a URL that starts with a forward slash (/). The URL cannot contain http:// or domain names. PCRE is supported.

    Flag

    None

    If you configure multiple URL rewrite rules, Alibaba Cloud CDN matches requests against the rules in order from top to bottom.

    break

    • If you configure multiple URL rewrite rules, and the current rule is matched, other rules are skipped.

    • This option rewrites only the resource path in the URL. The URL parameters remain unchanged. You can use the parameter rewrite feature to rewrite URL parameters.

    enhance break

    • If you configure multiple URL rewrite rules, and the current rule is matched, other rules are skipped.

    • Compared with Break, enhance break also rewrites URL parameters. However, the parameter rewrite settings may conflict with the settings of the feature that is described in Parameter rewrite. If you want to enable both features, make sure that the settings do not conflict with each other.

  8. Click OK to apply the rule.

    The new rewrite rule is displayed on the Back-to-origin URL Rewrite tab. You can click Modify or Delete in the Actions column of the rewrite rule to modify or delete the rewrite rule.

Configuration examples

  • Example 1: Apply a rule whose flag is set to None.

    Path to Be Rewritten

    ^/hello$

    Target Path

    /index.html

    Flag

    None

    Expected result

    Original request: http://example.com/hello

    Final request: http://example.com/index.html

    The system continues to match the request against other URL rewrite rules that are listed on the Back-to-origin URL Rewrite tab.

  • Example 2: Apply a rule whose flag is set to Break.

    Path to Be Rewritten

    ^/hello.jpg$

    Target Path

    /image/hello.jpg

    Flag

    break

    Expected result

    Original request: http://example.com/hello.jpg

    Final request: http://example.com/image/hello.jpg

    The system stops matching the request against other URL rewrite rules that are listed on the Back-to-origin URL Rewrite tab.

  • Example 3: Apply a rule whose flag is set to enhance break.

    Path to Be Rewritten

    ^/hello.jpg?code=123$

    Target Path

    /image/hello.jpg?code=321

    Flag

    enhance break

    Expected result

    Original request: http://example.com/hello.jpg?code=123

    Final request: http://example.com/image/hello.jpg?code=321

    The system stops matching the request against other URL rewrite rules that are listed on the Back-to-origin URL Rewrite tab.

  • Example 4: Add a URL prefix to the root directory if the file name is a 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

    ^(.*)$ matches any characters, and a pair of parentheses () represents a group. You can use $1 in the target path to call variables in the group.

    Target Path

    /image$1

    Note

    $1 is the first special replacement pattern, which represents the content that matches the expression in the first pair of parentheses () in a regular expression. $2 is the second special replacement pattern, which represents the content that matches the expression in the second pair of parentheses (). $n represents the nth special replacement pattern.

    Flag

    break

    Expected result

    • Original request: http://example.com/hello.jpg

      Final request: http://example.com/image/hello.jpg

    • Original request: http://example.com/hello.html

      Final request: http://example.com/image/hello.html

    The system stops matching the request against other URL rewrite rules that are listed on the Back-to-origin URL Rewrite tab.

  • Example 5: Add a URL prefix to a specific directory if the file name is a 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

    • Original request: http://example.com/live/hello.jpg

      Final request: http://example.com/image/live/hello.jpg

    • Original request: http://example.com/live/hello.html

      Final request: http://example.com/image/live/hello.html

    The system stops matching the request against other URL rewrite rules that are listed on the Back-to-origin URL Rewrite tab.

  • Example 6: Apply only the rule whose flag is set to None when multiple rules are configured.

    Create two URL rewrite rules, as shown in the following figure.配置

    Expected result:

    • Original request: http://example.com/image_01.png

    • Final request: http://example.com/image/image_02.png

      Note

      The request matches the first rule and the request URL is rewritten to http://example.com/image_02.png. Then, the request matches the second rule and the request URL is rewritten to http://example.com/image/image_02.png.

  • Example 7: Apply the rule whose flag is set to Break when multiple rules are configured.

    Create two URL rewrite rules, as shown in the following figure.配置

    Expected result:

    • Original request: http://example.com/image_01.png

    • Final request: http://example.com/image_02.png

      Note

      The request matches the first rule and the request URL is rewritten to http://example.com/image_02.png. Other rules are skipped.