我正在使用带有 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;
...
}
看这个文件了解更多信息。