网站之前一直是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’);