【网站】正确配置Nginx及DNS解析,实现全站裸域名

网站之前一直是www和裸域名并行,现在有了多个域名,因此想让www直接重定向到裸域名,但是实施过程比我想得要复杂的多。

一、DNS解析

设定www域名的CNAME解析,绑定到裸域名。

二、Nginx配置重定向逻辑

可以分成几个代码块,此外还需要注意证书的配置,示例:

1、重定向 HTTP 到 HTTPS,并强制跳转到裸域名:

server {
listen 80;
listen [::]:80;
server_name example.cn www.example.cn;
return 301 https://example.cn$request_uri;

}

2、重定向 HTTPS 的www 到裸域名

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.example.cn;
return 301 https://example.cn$request_uri;

}

3、HTTPS 裸域名配置

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.cn;

}

此外,还需要注意的是,Wordpress和Apache2搭配,可以很好的进行重写操作,比如链接结构的更改,但是变更到Nginx之后这种变更就没有那么的自动化了,这个问题在我从Apache2切换到Nginx之后去实现全站配置裸域名时出现得非常频繁。

如果不想使用插件,可以在配置主站点的各种设置到裸域名后,直接去数据库对post表里的www域名进行查询和替换,实现快速的替换。

UPDATE wp_posts
SET post_content = REPLACE(post_content, ‘http://www.example.com’, ‘http://example.com’);

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注