Nginx URL Redirection: From Non-WWW to WWW

| Servers | 15 seen

Nginx is a popular web server used to host websites and applications. One of the common tasks in Nginx configuration is redirecting non-www URLs to their www counterparts. This is known as a "www redirect". The purpose of this redirect is to standardize the URL format, improve search engine optimization, and provide a consistent user experience. In this article, we will go over how to set up an Nginx redirect to www using Nginx configuration.

Before we begin, it's important to note that this article assumes that you have access to the Nginx configuration files on your server. You will need to edit these files to set up the redirect. If you don't have access to the Nginx configuration files, you should consult your hosting provider or system administrator for assistance.

Step 1: Access the Nginx Configuration Files

To set up the Nginx redirect to www, you'll need to access the Nginx configuration files on your server. These files are typically located in the /etc/nginx/ directory.

Step 2: Create a Server Block for Non-www URLs

Once you have access to the Nginx configuration files, you'll need to create a server block for non-www URLs. The server block is a section of the Nginx configuration file that specifies how Nginx should respond to incoming requests.

To create the server block, open the Nginx configuration file in a text editor and add the following code:

server { listen 80; server_name example.com; return 301 $scheme://www.example.com$request_uri; }

In this code, you'll need to replace "example.com" with your own domain name. The "listen 80" directive tells Nginx to listen on port 80, which is the default port for HTTP traffic. The "return 301" directive tells Nginx to respond with a 301 redirect, which is a permanent redirect.

Step 3: Create a Server Block for www URLs

Next, you'll need to create a separate server block for www URLs. This server block will be used to serve your website or application.

To create the server block, add the following code to the Nginx configuration file:

server { listen 80; server_name www.example.com; # Add your website or application configuration here }

Again, you'll need to replace "example.com" with your own domain name. The "listen 80" directive and "server_name" directive are the same as in the previous server block.

Step 4: Test the Nginx Redirect to www

Finally, you'll need to test the Nginx redirect to www to make sure it's working correctly. To do this, you can use a tool like "curl" to make a request to your website or application and check the response.

To test the Nginx redirect to www, run the following command in a terminal:

curl -I http://example.com

If the redirect is working correctly, you should see a response that looks like this:

HTTP/1.1 301 Moved Permanently Server: nginx/1.x.x Date: Mon, dd MMM YYYY HH:mm:ss GMT Content-Type: text/html Content-Length: xx Connection: keep-alive Location: http://www.example.com/

;

In this response, the "Location" header is the URL