个别时候需要更换站点域名,此时旧域名一般还可以使用一段时间,做好301跳转,在新域名的页面提醒访客,并知会搜索引擎是十分必要的,尤其是旧站点已经有不少收录,被一些用户收藏、记住之后,就尤为必要。本文以Apache配置为例,介绍如何做好到新域名的301跳转。
步骤
- 检查站点程序中硬编码的域名,可能涉及输出,或条件判断,要提前确保通过新域名访问时,不会出现错误
- 检查CDN等外部资源中是否有Referer限制,不要出现权限错误
- 修改webmaster管理工具或者js跟踪代码的站点ID,尽量做到无缝衔接
- 将旧域名、新域名指向站点程序所在的主机IP
- 迁移证书,如果要在新机器上运行站点,需要将旧域名的证书文件迁移到新机器
- 配置虚拟主机,将旧域名的虚拟主机内容更改为
RedirectPermanent
指令
前3点主要是外部资源或者站点程序,不同站点差异较大,此处不详叙。
证书迁移请看前文《一次站点迁移过程:从DigitalOcean到阿里轻量云》。
下面具体演示虚拟主机的配置。
代码
以下示例中,旧域名为vps123.club
,新域名为vps123.top
。
# 80端口的主域名和www域名跳转到https的主域名
<VirtualHost *:80>
ServerName vps123.club
ServerAlias www.vps123.club
RedirectPermanent / https://vps123.top/
</VirtualHost>
# 因为之前的域名开启了https,所以https链接的跳转也要配置上之前的证书,主域名和www的要分开
# 主域名
<VirtualHost *:443>
ServerName vps123.club
RedirectPermanent / https://vps123.top/
SSLCertificateFile /etc/letsencrypt/live/vps123.club/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/vps123.club/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
# www域名
<VirtualHost *:443>
ServerAlias www.vps123.club
RedirectPermanent / https://vps123.top/
SSLCertificateFile /etc/letsencrypt/live/vps123.club-0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/vps123.club-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
如果还有更多子域名,按照对www的处理办法处理。
相关资源
下面是常用的Webmaster链接和站点迁移的指导文档:
参考资料
- https://serverfault.com/questions/344614/simple-apache2-redirect-from-one-domain-to-another
- http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectpermanent
-- EOF --
本文最后修改于6年前 (2019-06-09)