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

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

我正在使用帶有 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”?

答案1

如果您僅託管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;
    ...
}

這個文件了解更多。

相關內容