Maison  >  Questions et réponses  >  le corps du texte

nginx server_name correspond à un problème de nom de domaine de deuxième niveau

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 ?

我想大声告诉你我想大声告诉你2713 Il y a quelques jours719

répondre à tous(1)je répondrai

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 17:19:43

    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.

    répondre
    0
  • Annulerrépondre