Réponses:
nom_serveur prend en charge les correspondances de suffixes à l'aide de la syntaxe .mondomaine.com:
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
ou sur n'importe quelle version 0.9.1 ou supérieure:
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
listen
directive utilise par défaut le port 80 lorsqu'elle n'est pas spécifiée. C'est en fait un peu plus compliqué que cela en général; voir la documentation de configuration de nginx pour plus de détails.
?
à la fin?
rewrite
et return 301 $scheme://www.adifferentdomain.com$request_uri;
?
$request_uri
déjà la chaîne de requête, il n'est pas nécessaire de l'ajouter à nouveau. La return 301
syntaxe est plus récente et il ne devrait y avoir aucune différence de comportement entre les deux méthodes, mais lorsque j'ai initialement répondu à cette question, de nombreuses distributions n'avaient pas la version requise, j'ai donc opté pour la syntaxe la plus sûre.
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
et
Pourquoi utiliser le module de réécriture si vous pouvez le faire return
? Techniquement parlant, return
fait partie du module de réécriture comme vous pouvez le lire ici, mais cet extrait est plus facile à lire à mon humble avis.
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
Vous pouvez également lui donner une redirection 301.
return 302 $scheme://forwarded-domain.com$request_uri;
Cela devrait fonctionner via HTTPRewriteModule .
Exemple de réécriture de www.example.com vers example.com:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
.
Si vous souhaitez rediriger les demandes de "domain1.com" vers "domain2.com", vous pouvez créer un bloc de serveur qui ressemble à ceci:
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
listen 443;
Redirection temporaire
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
Redirection permanente
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
Dans le fichier de configuration nginx pour un site spécifique:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
Vous pouvez simplement écrire une condition if dans le bloc server {}:
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}