Comment rediriger vers un domaine différent en utilisant nginx?
Question
Comment puis-je rediriger mydomain.com
Et tout sous-domaine *.mydomain.com
à www.adifferentdomain.com
en utilisant nginx?
La solution
nom du serveur prend en charge les correspondances du suffixe à l'aide de la syntaxe .mydomain.com:
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
ou sur n'importe quelle version 0.9.1 ou plus:
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
Autres conseils
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 faire return
? Techniquement parlant, return
fait partie du module de réécriture comme Vous pouvez 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.
Cela devrait fonctionner via HttprewRiteModule.
Exemple de réécriture de www.example.com à example.com:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
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;
}
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 le site spécifique:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}