Как перенаправить страницу на другой домен, когда весь домен уже перенаправляет?

Я пытаюсь настроить страницу для перенаправления на ту же страницу в другом домене. Так что я

https://domain1.com/pagetoredirect

И я хочу, чтобы он указывал на

https://domain2.com/pagetoredirect

Однако весь domain1.com уже перенаправляет на определенную страницу на domain2.com.

Это настройка в моем файле конфигурации для домена в sites_enabled.

map $http_host $new {
    ~^(www\.)?domain2.com 1;
    ~^(www\.)?domain3.com 2;
}

server {
    listen 80;
    listen [::]:80;

    server_name ~^(www\.)?domain1.com$ ~^(www\.)?domain2.com$ ~^(www\.)?domain3.com$;

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl-bundle2.crt;
    ssl_certificate_key /etc/nginx/ssl/[DOMAIN].key;

    if ($new = '1') {
        rewrite ^(.*) https://www.domain1.com/currentredirect;
    }

    if ($new = '2') {
        rewrite ^(.*) https://www.domain1.com/currentredirect;
    }

    return 302 https://www.domain1.com$request_uri;
}

Я попытался добавить дополнительную переадресацию для конкретной страницы, которую я хочу перенаправить, используя следующий формат:

rewrite ^(/pagetoredirect/) https://www.domain1.com/pagetoredirect;

Я надеялся, что это будет иметь приоритет над перенаправлением на уровне домена, но, похоже, это не так.

Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
0
0
16
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Location блоки имеют приоритет в зависимости от их специфики — более конкретный путь будет сопоставляться первым:

server {
    listen 80;
    listen [::]:80;

    server_name .domain1.com;

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl-bundle2.crt;
    ssl_certificate_key /etc/nginx/ssl/domain1.key;

    location / {
      return 301 https://www.domain2.com/currentredirect;
    }

    location /pagetoredirect {
      return 302 https://www.domain2.com$request_uri;
    }
}

Спасибо за Ваш ответ. Оказывается, проблема заключалась в том, что домен даже не достигал моего сервера - я не понял, что он был указан на отдельный сервер с тем же основным перенаправлением, настроенным там. Так что, очевидно, ни одно из моих изменений ничего не делало. Идет шоу, всегда сначала проверяйте простые вещи! Я все равно помечаю ваш ответ как правильный, хотя оказалось, что моя проблема отличается от вопроса.

Infobahn 30.07.2019 11:52

Другие вопросы по теме