Всем привет. Есть такая задача:
порядка 400 однотипных доменов, отличающихся окончанием, например:
examlpe.com
example.net
examples.com
examples.net
Все четыре запроса нужно перенаправить на example.com/?q=example
Текущий вариант конфига:
set $main_host 'example.com';
if ($host != $main_host) {
rewrite ^(.*)$ http://$main_host/?q=example$1 redirect;
break;
}
Это работает, но при переходе по example.com, понятное дело, ничего не происходит
если же добавить условие типа
if ($host = $main_host) {
rewrite http://$main_host http://$main_host/?q=example$1 redirect;
break;
}
то у меня редиректы начинают крутиться в цикле.
Записи типа
rewrite ^ $scheme://example.com\?q=example break;
return 301 $scheme://example.com\?q=example$request_uri;
точно так же редиректят по кругу, после чего браузер выдает соответствующую ошибку.
Кроме того, для одного домена типа example это несложно написать, но когда их порядка 400, хотелось бы более автоматизированное решение.
Раньше это все было организовано на apache через htaccess следующими правилами:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)parts\.com [NC]
RewriteRule (.*)$ http://%1part.com [L,R=301]
RewriteCond %{HTTP_HOST} ^(.*)parts\.net [NC]
RewriteRule (.*)$ http://%1part.com [L,R=301]
RewriteCond %{HTTP_HOST} ^(.*)\.net [NC]
RewriteRule (.*)$ http://%1.com [L,R=301]
RewriteCond %{HTTP_HOST} ^(.*)\.COM [NC]
RewriteRule ^$ index.php?q=%1 [NC,QSA]
htaccess->nginx конвертер (пробовал 2 штуки) выдают либо полностью нерабочие правила, либо отрывают все до .com
Например, так:
if ($http_host ~ "^(.*)parts.com"){
set $rule_0 1$rule_0;
set $bref_1 $1;
}
if ($rule_0 = "1"){
rewrite /(.*)$ http://$bref_1part.com permanent;
}
if ($http_host ~ "^(.*)parts.net"){
set $rule_2 1$rule_2;
set $bref_1 $1;
}
if ($rule_2 = "1"){
rewrite /(.*)$ http://$bref_1part.com permanent;
}
if ($http_host ~ "^(.*).net"){
set $rule_3 1$rule_3;
set $bref_1 $1;
}
if ($rule_3 = "1"){
rewrite /(.*)$ http://$bref_1.com permanent;
}
if ($http_host ~* "^(.*).COM"){
set $rule_4 1$rule_4;
set $bref_1 $1;
}
if ($rule_4 = "1"){
rewrite ^/$ /index.php?q=$bref_1;
}
Прошу помочь разобраться. Спасибо.