Je vois la Nginx HttpRewriteModule documentation est un exemple de réécriture d'une www précédé d'un domaine vers un non-www-le préfixe de domaine:
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
Comment puis-je faire l'inverse-- réécriture d'un non-www précédé d'un domaine vers un www préfixe de nom de domaine? J'ai pensé que je pourrais peut-être faire quelque chose comme ce qui suit, mais Nginx n'aime pas imbriquée si l'instruction.
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;
}
}
Aussi je voulais que cela fonctionne pour n'importe quel nom de domaine sans le dire explicitement Nginx réécrire domain1.com -> www.domain1.com, domain2.com -> www.domain2.com, etc. depuis que j'ai un grand nombre de domaines à réécrire.