Domain-Name-System

Nginx 域名重定向

  • December 2, 2012

假設我有一個名為 的網站xyz.co,我還有其他具有相同前綴的域名,例如xyz.com, xyz.it, xyz.co.it

現在 nginx 在 in 中可以正常工作server_name xyz.conginx.confport 80希望所有其他域都重定向到xyz.co我也希望www.*上面的版本重定向到xyz.co. 我怎樣才能得到這個?這是 nginx 網路伺服器級別的變化嗎?或者我需要做這個改變DNS

server {
       listen 80;
       server_name  www.xyz.co xyz.com xyz.it xyz.co.it www.xyz.com www.xyz.it www.xyz.co.it;
       rewrite   ^  http://xyz.co$request_uri? permanent;
}

server {
       listen 80;
       server_name  xyz.co;

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

permanent如果您想要 302 重定向而不是 301,則可以從 rewrite 指令中刪除該標誌。

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

或更有效:

server {
   listen 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;
}

引用自:https://serverfault.com/questions/453472