Sometimes NGINX may show trailing slash in website URLs. Here’s how to remove trailing slash in NGINX to make your URLs look more intuitive.
Remove trailing slash in NGINX
Here are the steps to remove trailing slash in NGINX.
1. Open NGINX configuration file
Open terminal and run the following command to open NGINX server configuration file.
$ sudo vi /etc/nginx/nginx.conf
If you have configured separate virtual hosts for your website (e.g www.example.com), such as /etc/nginx/sites-enabled/website.conf then open its configuration with the following command
$ sudo vi /etc/nginx/sites-enabled/website.conf
2. Remove trailing slash
Add the following rewrite rule in server block as shown in bold. Replace example.com below with your domain name
server {
listen 80;
server_name example.com;
rewrite ^/(.*)/$ /$1 permanent;
}
In the above code, the rewrite statement will redirect all URLs to those without trailing slash.
If you want to remove trailing slash from only a specific URL (e.g /product/) then update the rewrite statement as shown below.
server {
listen 80;
server_name mydomain.com;
rewrite ^/product/$ /product permanent;
}
* You can also use this method. Remove the trailing slash from all paths except mypath.
location ~ ^/mypath(.*) {
try_files $uri @tomcat;
}
location ~ (?<no_slash>.*)/$ {
return 301 $no_slash;
}
...
location / {
try_files $uri @tomcat;
}
location @tomcat {
...
}
3. Restart NGINX Server
Run the following command to check syntax of your updated config file.
$ sudo nginx -t
If there are no errors, run the following command to restart NGINX server.
$ sudo service nginx reload #debian/ubuntu
$ systemctl restart nginx #redhat/centos