当用户进入主域https://de.example.com时,我尝试将其从DE重定向到子域https://www.example.com。
我尝试了以下操作:
if ($geoip_country_code ~ (DE)) {
return 301 https://de.example.com$request_uri;
if ($host = 'example.com') {
return 301 https://www.example.com$request_uri;
国家/地区重定向正在运行,但与另一个重定向冲突。 如何将两者结合?
(更新)
当我这样做的时候..
map $geoip_city_country_code $closest_server {
default www.example.com;
DE de.example.com;
}
if ($closest_server != $host) {
rewrite ^ $scheme://$closest_server$request_uri break;
}
然后一切正常!但非DE仅限www.example.com,并且无法浏览至ar.example.com,he.example.com等,这对Google bot来说是毒药。因此,如果默认有通配符值,那将是完美的选择。
(更新)
好吧
我现在这样尝试: nginx.conf:
map $geoip_city_country_code $allowed_country {
default 0;
DE 1;
}
主机文件:
server {
if ($allowed_country = 1) {
return 301 $scheme://de.example.com$request_uri;
}
...
但是如果现在访问默认域,我将重定向到de.example.com,但出现错误:
重定向过多。
错误代码:INET_E_REDIRECT_FAILED