Lors de la configuration de nginx, server_name doit configurer plusieurs noms de domaine de deuxième niveau. Reportez-vous à cet article, texte original http://bneijt.nl/blog/post/name-based-vi...
L'extrait est le suivant :
server {
server_name ~^((?<subdomain>.*)\.)?(?<domain>[^.]+)\.(?<tld>[^.]+)$;
if ($subdomain = "") {
set $subdomain "_";
}
location / {
index index.html;
root /srv/http/vhost/${domain}.${tld}/${subdomain};
}
}
Ma configuration est légèrement modifiée en fonction de cela, le contenu est le suivant :
server {
server_name ~^((?<subdomain>.*)\.)aa\.com$;
if ($subdomain = "") {
set $subdomain "www";
}
location / {
root /var/www/${subdomain}.aa.com/public;
index index.html index.htm;
}
}
Question :
Lorsque le sous-domaine est vide, il ne peut pas être converti en www. Autrement dit, si vous saisissez www.aa.com dans le navigateur, vous pouvez y accéder, mais si vous saisissez directement aa.com, vous ne pouvez pas le faire. y accéder. Il s'agit d'une expression régulière ~^((?<subdomain>.*).)aa.com$
ou d'autres problèmes ?
Changez l'expression régulière en :
~^((?<subdomain>.*).)?aa.com$
Essayez-le
Remarque, ce n'est pas vérifié dans l'environnement.
Il existe également un accès aux noms de domaine, qui nécessite la résolution du nom de domaine et la configuration des enregistrements A.
www.aa.com et aa.com nécessitent deux enregistrements A.
Le mieux, vérifiez les deux endroits.