Redirect Nginx将非www.重定向到www.的多个服务器名称的最佳方式

Redirect Nginx将非www.重定向到www.的多个服务器名称的最佳方式,redirect,nginx,url-rewriting,return,Redirect,Nginx,Url Rewriting,Return,我的配置: server { listen 80; listen [::]:80; server_name domain.com www.domain.com; ##locations and fastcgi proxy stuff etc down here } 我看到其他人执行301重定向返回的方式是,他们创建一个新的服务器块,然后像这样将域主机放入其中 server { listen 80; listen [::]:80; server_name domain.com; return

我的配置:

server {
listen 80;
listen [::]:80;
server_name domain.com www.domain.com;

##locations and fastcgi proxy stuff etc down here
}
我看到其他人执行301重定向返回的方式是,他们创建一个新的服务器块,然后像这样将域主机放入其中

server {
listen 80;
listen [::]:80;
server_name domain.com;
return 301 $scheme://www.domain.com$request_uri;
##This server block contains no locations etc
}
如何在不创建新服务器块的情况下从非www.重定向到www?

尝试:

if ($host ~* "^(?!www)(.*)$") {
    set $catch_host $1;
    rewrite (.*) http://www.${catch_host}$1 permanent;
}

在哪里添加?在服务器{if$host~*^?!www.*${?