Nginx

在 nginx 中替換非 www 域時遇到問題

  • March 1, 2018

我正在使用帶有 Nginx 的 CentOS 7。我想將所有非 www 域轉換為“www”域,例如,如果有人輸入“abc.example.com”,我希望將它們重定向到“www.example.com”。我試過這個

server {
 listen 80;
 server_name "~^(?!www\.).*";
 return 301 $scheme://www.$host$request_uri;
}

在我的站點特定配置文件中,但是如果有人輸入“abc.example.com”,他們會被重定向到“www.abc.example.com”。如何更正上述內容以替換而不是預先添加“www”?

如果您只是託管example.com域並希望將所有內容重定向到www.example.com,則應使用預設伺服器而不是正則表達式伺服器。

例如:

server {
   listen 80 default_server;
   return 301 $scheme://www.example.com$request_uri;
}
server {
   listen 80;
   server_name www.example.com;
   ...
}

有關更多資訊,請參閱此文件

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