> ## Content Index
> Fetch the complete content index at: https://kudithipudi.org/llms.txt
> Use this file to discover other available public pages before exploring further.

# HOW TO : Configure nginx to use URI for modifying response content
- URL: https://kudithipudi.org/how-to-configure-nginx-to-use-uri-for-modifying-response-content/
- Published: 2020-05-07T17:50:40.000Z
- Updated: 2020-05-07T17:50:40.000Z
- Description: That was a pretty long title for the post :). I love nginx for it’s flexibility and ease of use. It is like a swiss army...
- Author: admin
- Tags: HOWTO, Technology, Web, howto, nginx, regex, tips, tricks, uri, #wp, #wp-post, #Import 2026-08-23 02:32

That was a pretty long title for the post :). I love nginx for it’s flexibility and ease of use. It is like a swiss army knife.. can do a lot of things :).

We needed to serve some dynamic content for one of our use cases. If user visits a site using the following URL format `http://example.com/23456789/678543` , we want to respond with some html content that is customized using the `23456789` and `678543` strings.

A picture might help here

![](https://kudithipudi.org/wp-content/uploads/2020/05/nginx_customize_content.png)

Here’s how this was achieved

- Define a location section in the nginx config to respond to the URL path specified and direct it to substitute content

```
    location ~ "^/(?<param1>[0-9]{8})/(?<param2>[0-9]{6})" {

            root /var/www/html/test/;
            index template.html;
            sub_filter_once off;
            sub_filter '_first_param_' '$param1';
            sub_filter '_second_param_' '$param2';
            rewrite ^.*$ /template.html break;
    }
```

create a file named template.html with the following content in /var/www/html/test

![](https://kudithipudi.org/wp-content/uploads/2020/05/template_file.png)

Breaking down the config one line at a time

`location ~ "^/(?<param1>[0-9]{8})/(?<param2>[0-9]{6})"` **:** The regex is essentially matching for the first set of digits after the / and adding that as the value for variable $param1\. The first match is a series of 8 digits with each digit in the range 0-9\. The second match is for a series of 6 digits with each digit in the range 0-9 and it will be added as the value for variable $param2

`root /var/www/html/test/;` **:** Specifying the root location for the location.

`index template.html;` **:** Specifying the home page for the location.

`sub_filter_once off;` **:** Specify to the [sub\_filter](http://nginx.org/en/docs/http/ngx%5Fhttp%5Fsub%5Fmodule.html?ref=kudithipudi.org) module to not stop after the first match for replacing response content. By default it processes the first match and stops.

`sub_filter '*first_param*' '$param1';` **:** Direct the sub\_filter module to replace any text matching first\_param in the response html with value in variable $param1.

`sub_filter '*second_param*' '$param2';` **:** Direct the sub\_filter module to replace any text matching second\_param in the response html with value in variable $param1.

`rewrite ^.*$ /template.html break;` **:** Specify nginx to server template.html regardless of the URI specified.

Big thanks to [Igor](https://www.linkedin.com/in/icherkaev/?ref=kudithipudi.org) for help with the configs!!