Nginx - Redirect Domain Trailing Dot

2019-06-19 08:03发布

问题:

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?

回答1:

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.



回答2:

You will need to use Regex.

server {
    listen       80;
    server_name  domain.com.WHATEVER, domain.com.WHATEVER-2, domain.com.WHATEVER-3;
    rewrite  ^  $scheme://domain.com$request_uri?  permanent;
}

From: http://wiki.nginx.org/HttpRewriteModule

redirect - returns temporary redirect with code 302; it is used if the substituting line begins with http:// permanent - returns permanent redirect with code 301



标签: nginx