Как сохранить заголовок узла в URL браузера после перенаправления 301? - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть мандат на перенаправление внутреннего URL (coolnewproduct.mycoolcorp.net) на внешнюю сущность (mycoolcorp.coolerproducts.com).Я использую nginx для выполнения перенаправления 301 для coolnewproduct.mycoolcorp.net на mycoolcorp.coolerproducts.com, однако заголовок хоста, видимый в браузере, изменяется и mycoolcorp.coolerproducts.com виден.Есть ли способ для nginx сохранить оригинальный заголовок хоста coolnewproduct.mycoolcorp.net после выполнения перенаправления?

1 Ответ

0 голосов
/ 12 декабря 2018

Попробуйте:

server {
    listen 80;
    server_name coolnewproduct.mycoolcorp.net;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    location / {
        proxy_set_header Host mycoolcorp.coolerproducts.com;
        proxy_cookie_domain mycoolcorp.coolerproducts.com coolnewproduct.mycoolcorp.net;
        proxy_pass http://mycoolcorp.coolerproducts.com;
    }
}

Если сайт mycoolcorp.coolerproducts.com использует автоматическое перенаправление с HTTP на HTTPS, измените строку proxy_pass http://mycoolcorp.coolerproducts.com; на proxy_pass https://mycoolcorp.coolerproducts.com;.

Обновление

Предполагая, что nginx скомпилирован с ngx_http_sub_module , чтобы переписать абсолютные ссылки в теле запроса прокси сайта, вы можете попробовать использовать эту конфигурацию:

server {
    listen 80;
    server_name coolnewproduct.mycoolcorp.net;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    location / {
        sub_filter_once off;
        sub_filter '//mycoolcorp.coolerproducts.com/' '//coolnewproduct.mycoolcorp.net/';
        proxy_set_header Host mycoolcorp.coolerproducts.com;
        proxy_set_header Accept-Encoding "";
        proxy_cookie_domain mycoolcorp.coolerproducts.com coolnewproduct.mycoolcorp.net;
        proxy_pass http://mycoolcorp.coolerproducts.com;
    }
}

У меня естьникогда не работал с этим модулем, некоторые люди говорят, что он делает только одну замену на страницу.Существует альтернатива от наших китайских друзей, которая подтвердила, что работает для этого случая (никогда не использовала ее тоже).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...