Maxim Dounin
November 01, 2019 12:28PM
Hello!

On Fri, Nov 01, 2019 at 10:57:32AM -0400, opan wrote:

> Добрый день.
>
> Есть следующая конфигурация сервера:
>
> server {
> listen 80; ## listen for ipv4
> listen 443 default_server ssl;
>
> server_name localhost;
> server_name_in_redirect off;
>
> location = /loc {
> if ($scheme = http) {
> return 301 https://$server_name$request_uri;
> }
>
> ...
> Мы ожидаем что все запросы, которые попадают в этот пустой server_name,
> будут перенаправляться на https://$host/loc/$request_uri, так как есть
> директива: server_name_in_redirect off; Однако запросы перенаправляются
> на https://localhost/loc/$request_uri
>
> Из документации такое поведение не удалось понять. Можете пояснить,
> пожалуйста, как правильно пользоваться это директивой?

Директива server_name_in_redirect влияет только на то, что будет
испольвоваться в host-части перенаправлений, которые возвращает
сам nginx (а равно в случаях, когда nginx преобразует
перенаправления к абсолютным).

В приведённом же случае - в перенаправлении явно используется
$server_name, и результат будет ровно такой, как написано,
значение директивы server_name_in_redirect никак на это не влияет.
Если вы хотите, чтобы возвращалось перенаправление на https://$host - так
и напишите в конфиге.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

server_name_in_redirect?

opan November 01, 2019 10:57AM

Re: server_name_in_redirect?

Maxim Dounin November 01, 2019 12:28PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 260
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready