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;
}
listendirective 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?
rewriteet return 301 $scheme://www.adifferentdomain.com$request_uri;?
$request_uridéjà la chaîne de requête, il n'est pas nécessaire de l'ajouter à nouveau. La return 301syntaxe 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, returnfait 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;
}
}