Я пытаюсь настроить страницу для перенаправления на ту же страницу в другом домене. Так что я
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;
Я надеялся, что это будет иметь приоритет над перенаправлением на уровне домена, но, похоже, это не так.
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;
}
}
Спасибо за Ваш ответ. Оказывается, проблема заключалась в том, что домен даже не достигал моего сервера - я не понял, что он был указан на отдельный сервер с тем же основным перенаправлением, настроенным там. Так что, очевидно, ни одно из моих изменений ничего не делало. Идет шоу, всегда сначала проверяйте простые вещи! Я все равно помечаю ваш ответ как правильный, хотя оказалось, что моя проблема отличается от вопроса.