Nginx

如何配置 nginx 將所有請求從域別名重定向到主域?

  • November 3, 2016

我確實有一個響應多個域的 nginx 伺服器,我確實想將所有請求重定向到主域。

範例:網站xxx xxx.example.com yyy.example.com $hostname同時響應httphttps

我想以這樣一種方式配置伺服器,即所有對其他域名的請求都將被重定向到xxx.example.com.

我認為這些方面的東西應該​​起作用:

set $primary_domain "xxx.example.com";
if ($host != $primary_domain) {
   rewrite ^ $scheme://$primary_domain permanent;
}

最有效和最乾淨的方法是配置兩個單獨的 server{} 塊 - 一個用於重定向,另一個(具有規範名稱)用於實際處理請求。

範例配置:

server {
   listen 80;
   listen 443 ssl;

   server_name xxx yyy.example.com $hostname;

   ssl_certificate ...
   ssl_certificate_key ...

   return 302 $scheme://xxx.example.com$request_uri;
}

server {
   listen 80;
   listen 443 ssl;

   server_name xxx.example.com;

   ssl_certificate ...
   ssl_certificate_key ...

   ...
}

文件:

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