我正在尝试设置一个页面以重定向到另一个域上的同一页面。所以我有
https://domain1.com/pagetoredirect
我希望它指向
https://domain2.com/pagetoredirect
但是,整个domain1.com已经重定向到domain2.com上的特定页面。
这是我的conf文件中针对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;
我希望这将优先于域级重定向,但事实并非如此。
答案 0 :(得分:0)
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;
}
}