1 votes

Réacheminements de nom de domaine NGinx

Supposons que j'ai un site Web nommé xyz.co, j'ai également d'autres noms de domaine avec le même préfixe comme xyz.com, xyz.it, xyz.co.it

Actuellement, nginx fonctionne bien avec server_name xyz.co dans nginx.conf sur port 80 Je voudrais que tous les autres domaines redirigent également vers xyz.co je voudrais également que les versions www.* de ce qui précède redirigent vers xyz.co. Comment puis-je obtenir cela? Est-ce des modifications au niveau du serveur Web nginx? ou dois-je apporter ces modifications dans DNS?

1 votes

3voto

VBart Points 8009
serveur {
    server_name ~^(?:www\.)?xyz\.(?:com|(?:co\.)?it)$;
    return http://xyz.co$request_uri;
}

ou plus efficace:

serveur {
    écoute 80;
    server_name xyz.com www.xyz.com
                xyz.it www.xyz.it
                xyz.co.it www.xyz.co.it;

    return http://xyz.co$request_uri;
}

0 votes

Bien que votre réponse a été extrêmement utile, étant donné que j'avais déjà un bloc serveur avec de nombreuses directives ci-dessous, je ne savais pas ce que ferait une instruction return. La réponse d'@Ellimist a clarifié cela.

0voto

serveur {
        écoute  80;
        nom_serveur  www.xyz.co xyz.com xyz.it xyz.co.it www.xyz.com www.xyz.it www.xyz.co.it;
        réécriture   ^  http://xyz.co$request_uri? permanent;
}

serveur {
        écoute 80;
        nom_serveur  xyz.co;

        ....................
        ....................
        ....................
}

Vous pouvez supprimer le drapeau permanent de la directive de réécriture si vous voulez une redirection 302 au lieu d'une 301.

-1voto

Oneiroi Points 1968

Documentation http://wiki.nginx.org/HttpRewriteModule

if ($http_host ~* "(www\.)?xyz\.(com|(co\.)?it)"){
  rewrite ^(.*)$ http://xyz.co/$1 break;
}

Cela nécessitera des tests et des modifications selon vos préférences, mais quelques tests rapides montrent que cela devrait faire ce dont vous avez besoin.

MISE À JOUR selon la référence fournie par VBart, http://nginx.org/en/docs/http/converting_rewrite_rules.html est une méthode bien meilleure pour atteindre ce que vous recherchez, consultez sa réponse fournie.

1 votes

Ceci est une manière erronée, fastidieuse et inefficace. (c) nginx.org/en/docs/http/converting_rewrite_rules.html

0 votes

Lourd et inefficace je peux être d'accord avec vu le lien fourni montrant une bien meilleure façon d'atteindre ceci, faux est discutable puisque la méthode fonctionne; de toute façon réponse mise à jour.

0 votes

Voter pour annuler les votes négatifs. Cette méthode pourrait être incorrecte mais elle m'a orienté dans la bonne direction...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X