今天下午蜗牛帮助一个网友在解决网站数据迁移问题。他目前有两个域名网站,其中一个站点准备关闭掉。但是希望数据用到另外一个站点中。不过另外一个站点是有数据的,但是数据全部删除不要。其实说到底,就是就是要将站点更换一个域名。但是并不是简单的更换,还需要做301重定向设置的。而且需要保持原有的URL地址。
这不正好借助这次机会,蜗牛单独较为详细的整理一篇网站改版或者更换域名的时候301重定向设置。这里整理几个我们常用的设置案例,而不是去说什么概念,这些都没有用。你需要什么样子的,直接照着案例修改就可以,废话少说,我们一起看看吧。
这里需要插一句的,如果我们服务器Nginx和Apache,还是稍微不同的,这里我较多的还是以Nginx 引擎为主,也会有部分是Apache,因为这个引擎我们可能用的不是特别多。Apache设置301在根目录 .htaccess文件设置添加,添加后是即时生效的。Nginx 设置是在配置文件域名下的.conf文件中,且设置后需要重启Nginx才能生效。
1、全部设置跳转WWW前缀域名
一般我们的域名是有WWW和不带WWW的,一般我们习惯上会有WWW域名作为完整域名。这里我们不去介绍实际上一级域名是不带WWW的,我们就以约定俗成的习惯。我们希望不论打开WWW还是不是WWW的域名都跳转到WWW的域名。
# Apache
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.itbulu.com$ [NC]
RewriteRule ^(.*)$ http://www.itbulu.com/$1 [R=301,L]
# Nginx
if ($ssl_protocol = \"\") { return 301 https://$host$request_uri; }
if ($host != www.itbulu.com) { return 301 $scheme://www.itbulu.com$request_uri; }
2、跳转到其他域名
# Apache
RewriteCond %{HTTP_HOST} ^www.老域名.com$ [NC]
RewriteRule ^(.*)$ http://www.新域名.com/$1 [R=301,L]
# Nginx
if ($host != \'www.新域名.com\' ) {
rewrite ^/(.*)$ http://www.新域名.com/$1 permanent;
}
直接在老站点配置文件设置新域名强制跳转。
3、访问A域名跳转到B
比如我们更换新域名后,我们访问A的时候需要跳转到B。那需要在A设置。
server {
listen 80;
server_name www.老域名.com;
return 301 http://新域名.com$request_uri;
}
这个我们需要作用在老域名站点配置文件,全部跳转到新站点域名。
4、Nginx HTTP跳转到HTTPS
如果我们有开启HTTPS,那这个肯定是有需要用到的。
server_name www.itbulu.com itbulu.com;
if ($host != \'www.itbulu\' ) {
rewrite ^/(.*)$ https://www.itbulu/$1 permanent;
}
5、Apache HTTPS跳转
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.laobuluo.com/$1 [R,L]
这几个是我们常用的网站改版或者是换域名,常用的301重定向案例,如果我们有需要的话,选择其中需要的设置就可以。
关于301重定向的文章:
1、分享五款WordPress跳转外链接插件实现301跳转
2、解决网站设置强制301跳转之后无法打开的问题
3、宝塔面板设置301跳转重定向的2个简单方法记录
4、Apache环境.htaccess设置301跳转及常用.htaccess技巧整理
5、lnmp设置301重定向跳转至WWW域名及更换域名重定向方法