Nginx,server_name 定位尾随“.”不会重定向

Nginx,server_name 定位尾随“.”不会重定向

当您在浏览器中输入“dev1.example.com.”或使用 HTTP 客户端请求主机时,我希望它重定向到“dev1.example.com”。我尝试使用以下服务器块执行此操作:

server {
    listen 80;
    server_name dev1.example.com.;
    add_header Pragma no-cache;
    add_header Expires "Sat, 01 Jan 2000 00:00:00 GMT";
    add_header Cache-Control "private, no-cache, no-store, max-age=0, must-revalidate, post-check=0, pre-check=0";

    return 301 http://dev1.example.com$request_uri;
}

但是,似乎什么都没发生。我尝试清除 DNS 解析器缓存,清除我自己的浏览器的 DNS 缓存,甚至用 Curl 请求了 URL。我请求的 URL 是“dev1.example.com”。我希望它会重定向到“dev1.example.com”。

答案1

此配置有效。您可以使用 CURL 检查:

curl -v -H 'Host: dev1.example.com.' -o /dev/null http://dev1.example.com

以下是使用 CURL 的事务:

> GET / HTTP/1.1
> User-Agent: curl
> Accept: */*
> Host: dev1.example.com.
> 
< HTTP/1.1 301 Moved Permanently
< Server: nginx
< Date: Fri, 25 Jul 2014 04:30:37 GMT
< Content-Type: text/html
< Content-Length: 184
< Connection: keep-alive
< Location: http://dev1.example.com/
< Pragma: no-cache
< Expires: Sat, 01 Jan 2000 00:00:00 GMT
< Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate, post-check=0, pre-check=0

相关内容