LINUX.ORG.RU
решено ФорумAdmin

nginx как настроить без 301?

 


0

1

Привет. Как настроить nginx, чтоб он не отдавал (301) при запросе, но при этом редирект на https работал.

curl site.com

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
</body>
</html>

А нужно чтоб сразу отдавал содержимое, как при таком запросе curl https://site.com.

как тут сделано curl ifconfig.me. При этом сайт работает на https.


Ответ на: комментарий от bikes

Код 301 - это стандартный и технический корректный способ для такого сценария.
Можете настроить для браузера редирект по 301, а для curl отдавать без редиректа, используя разную логику на основе User-Agent

zolden ★★★★★ ()
curl ifconfig.me

При этом сайт работает на https.

Нет, не работает.

$ curl -vvv ifconfig.me
* Rebuilt URL to: ifconfig.me/
*   Trying 216.239.38.21...
* TCP_NODELAY set
* Connected to ifconfig.me (216.239.38.21) port 80 (#0)
> GET / HTTP/1.1
> Host: ifconfig.me
> User-Agent: curl/7.52.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sun, 09 Aug 2020 06:29:03 GMT
< Content-Type: text/plain; charset=utf-8
< Content-Length: 13
< Access-Control-Allow-Origin: *
< Via: 1.1 google
<
* Curl_http_done: called premature == 0
* Connection #0 to host ifconfig.me left intact

Обратите внимание на порт 80 и полное отсутствие информации от curl про рукопожатие TLS.

anonymous ()
Ответ на: комментарий от bikes

Сам ты одно место, это же простейшие вещи.

Это вне блока server:

map $http_user_agent $xzua {

default        1;

"~*curl"       0;
"~*wget"       0;
""
}
Это в server:
 if ($xzua) {
    return 301 https://$host$request_uri;
  }
Мог ошибиться, т.к. писал прямо тут, но смысл думаю понятен.

anonymous ()
Ответ на: комментарий от anonymous

вот не поверишь именно так и сделал. Простейшие, когда знаешь как конфигурировать nginx. А так не один час просидел, чтоб написать несколько этих строчек .

bikes ()
Последнее исправление: bikes (всего исправлений: 1)