Я вижу Nginx HttpRewriteModule documentation есть пример, чтобы переписать на WWW-приставке домен не-WWW-приставке домена:Nginx переписывание без WWW-приставка домена WWW-приставки домена
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
Как я могу сделать обратное - переписать домен, не содержащий www-prefixed, в домен с префиксом www? Я думал, может быть, я мог бы сделать что-то вроде следующего, но Nginx не любит вложенную инструкцию if.
if ($host !~* ^www\.) { # check if host doesn't start with www.
if ($host ~* ([a-z0-9]+\.[a-z0-9]+)) { # check host is of the form xxx.xxx (i.e. no subdomain)
set $host_with_www www.$1;
rewrite ^(.*)$ http://$host_with_www$1 permanent;
}
}
Кроме того, я хотел, чтобы это работало для любого доменного имени без явного говоря Nginx переписать domain1.com -> www.domain1.com, domain2.com -> www.domain2.com и т.д., так как у меня есть большое количество доменов для перезаписи.
как использовать это без если? – pahnin