Я создаю свою конфигурацию nginx с помощью автоматических инструментов, таких как nginx -proxy на docker. Там они позволили мне добавить настраиваемую строку внутри директивы location
.
Просто я хочу, чтобы www.example.com
был перенаправлен 301 на example.com
, или, как правило, оба http://www.example.com
и https://www.example.com
должны быть 301 перенаправлен на https://example.com
.
Результат автоматического создания конфигурации как таковой:
server {
...
server_name www.example.com;
listen 443 ssl http2 ;
location / {
proxy_pass http://<upstream>;
return 301 $scheme://example.com;
}
}
Я заметил, что перед return 301 ...
есть синтаксис proxy_pass
, и, поскольку его создание автоматизировано, Я не думаю, что смогу легко изменить это (т.е. сделать так, чтобы return 301 появлялся перед синтаксисом proxy_pass
.
From nginx документация :
proxy_pass
Устанавливает протокол и адрес проксируемого сервера и необязательный URI, с которым должно быть сопоставлено местоположение.
Итак, nginx - разумный вопрос, поскольку он сказал "устанавливает", будет ли перенаправление 301 выполнено правильно, даже если перенаправление произошло после синтаксиса proxy_pass
?