Nginx · December 18, 2023

Nginx Command: rewrite

Nginx Command: rewrite

Nginx is a popular web server and reverse proxy server that is known for its high performance, scalability, and flexibility. It is widely used by many websites and web applications to handle a large number of concurrent connections efficiently. One of the powerful features of Nginx is the rewrite command, which allows you to modify and manipulate URLs to control how requests are processed.

What is the rewrite command?

The rewrite command in Nginx is used to change or modify the URL of a request before it is processed by the server. It allows you to perform various operations such as redirecting URLs, rewriting URLs based on certain conditions, and modifying query parameters.

The syntax of the rewrite command is as follows:

rewrite regex replacement [flag];

Here, regex is a regular expression that matches the part of the URL you want to modify, and replacement is the new value that will replace the matched part. The optional flag parameter can be used to specify additional options for the rewrite rule.

Examples of using the rewrite command

Let's look at some examples to understand how the rewrite command can be used in practice:

1. Redirecting URLs

You can use the rewrite command to redirect URLs from one location to another. For example, if you want to redirect all requests from http://example.com to https://example.com, you can use the following rewrite rule:

rewrite ^(.*)$ https://example.com$1 permanent;

This rule matches any URL and redirects it to the same URL with https://example.com as the new domain.

2. Rewriting URLs based on conditions

You can also use the rewrite command to rewrite URLs based on certain conditions. For example, if you want to rewrite all requests for /blog to /articles only if the request is coming from a specific IP address, you can use the following rewrite rule:

if ($remote_addr = 192.168.0.1) {
    rewrite ^/blog(.*)$ /articles$1 last;
}

This rule checks if the remote IP address is 192.168.0.1 and if so, it rewrites the URL from /blog to /articles.

3. Modifying query parameters

The rewrite command can also be used to modify query parameters in the URL. For example, if you want to add a query parameter utm_source=usavps to all requests, you can use the following rewrite rule:

rewrite ^(.*)$ $1?utm_source=usavps last;

This rule appends the query parameter utm_source=usavps to the existing query parameters in the URL.

Conclusion

The rewrite command in Nginx is a powerful tool that allows you to modify and manipulate URLs to control how requests are processed. It can be used for various purposes such as redirecting URLs, rewriting URLs based on conditions, and modifying query parameters. By leveraging the rewrite command, you can have more control over your website's URL structure and improve the overall user experience.

For more information about VPS hosting and how it can benefit your website, check out Server.HK.