Nginx - Redirect Domain Trailing Dot

nginx

Solution

The following snippet does this in a general way, without having to hard code any hostnames (useful if your server config handles requests for multiple domains). Add this inside any server definition that you need to.

if ($http_host ~ "\.$" ){
    rewrite ^(.*) $scheme://$host$1 permanent;
}

This takes advantage of the fact (pointed out by Igor Sysoev) that `$host` has the trailing dot removed, while `$http_host` doesn't; so we can match the dot in `$http_host` and automatically use `$host` for the redirect.

Problem

How can I redirect "http://domain.com." to "http://domain.com" with Nginx? What's the recommended way of doing this? Regex or is there any other options?

Original source