Назад | Перейти на главную страницу

Nginx, имя_сервера, таргетинг на конечный "." не будет перенаправлять

Когда вы набираете "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-кеш моего браузера и даже запросил URL-адрес с помощью Curl. Запрошенный мной URL-адрес - dev1.example.com. Я ожидал, что он будет перенаправлен на "dev1.example.com".

Эта конфигурация работает. Вы можете проверить с помощью 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