今天下午国外主机优惠帮助一个网友在解决网站数据迁移问题。他目前有两个域名网站,其中一个站点准备关闭掉。但是希望数据用到另外一个站点中。不过另外一个站点是有数据的,但是数据全部删除不要。其实说到底,就是就是要将站点更换一个域名。但是并不是简单的更换,还需要做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域名及更换域名重定向方法