域名跳转详解及优化【涉及根域名、www、301、SSL】

域名,网站的入口。
以下,以奇葩看书的域名 www.78kanshu.com 为例来详细讲解。

单一域名的访问方式有如下几种:

1
2
3
4
http://78kanshu.com
http://www.78kanshu.com
https://78kanshu.com
https://www.78kanshu.com

其中,1 2 为普通域名可访问方式,3 4 为配置了SSL的域名的可访问方式。
也就是说,一个配置了全站SSL的网站,域名会有以上四种访问方式。不同的访问方式对于搜索引擎来说是一个独立的站点,那么没有任何配置或优化的话,就会极大的分散域名的权重。

优化的目标:以上四种访问方式统一
即确定一个主要入口,而把域名的其他三种访问方式全部跳转到主入口。

继续以奇葩看书的域名 www.78kanshu.com 为例,确定主入口为 https://www.78kanshu.com 而把其他三种访问方式都跳转到主入口。
实现环境如下:
WinServer2008+IIS+PHP+宝塔+cloudflare
cloudflare提供CDN加速及SSL;
宝塔搭建共生模式PHP+Mysql;
IIS提供FastCGI及URL重写;

如非以上环境,请自行参考调整。

宝塔设置部分

打开宝塔,网站,选择已建立网站,右键,域名管理

将www.78kanshu.com及78kanshu.com均加入

宝塔设置部分就完成了。当然,此设置可以在IIS直接配置如下:

打开IIS管理器,双击要配置的网站,在右侧点击 绑定 ,如图加入 www.78kanshu.com 及 78kanshu.com

IIS设置部分

打开IIS管理器,双击要配置的网站,在中间部分双击URL重写【URL重写模块需额外下载安装,这里给出微软下载地址

点击右侧的导入规则,将如下代码粘贴在重写规则里

1
2
RewriteCond %{HTTP_HOST} ^78kanshu\.com$ [NC]
RewriteRule ^(.*)$ https://www.78kanshu.com/$1 [L,R=301]

并点击应用。返回规则后,在重写规则最下方找到你刚刚添加的规则,选中并上移到第一条。

因为重写规则是从上到下逐条执行,所以把新加的这条301重写规则调整到第一优先级。

这里需要注意的细节如下:
1、 RewriteCond %{HTTP_HOST} ^78kanshu\.com$ [NC] ←这句里面修改为自己的根域名,也即裸域名,域名里的.前面需要加转义字符\
2、 RewriteRule ^(.*)$ https://www.78kanshu.com/$1 [L,R=301] ←这句里的完整域名即为最终网站主入口。

至此,IIS设置部分完成。
PS:网上很多似是而非的所谓教程,告诉大家建空目录,将裸域名指向空目录再301跳转到www域名,这么脱了裤子放P的折腾,还是算了吧。

网站设置部分
不管你用的是asp,还是php,将如下js代码加入到网站首页或head页即可,当然,需要修改为你自己的域名。

1
2
3
4
5
6
<script>
url = window.location;
url = url.toString();
if (url.match(/^http:\/\/www\.78kanshu\.com\/$/) || url.match(/^http:\/\/www\.78kanshu\.com$/)) { Go('https:\/\/www\.78kanshu\.com'); }
function Go(url) { window.location = url;}
</script>

建议将这段脚本放置在body之前,这段脚本的功能就是获取当前访问url,如果为http则跳转到https。

至此,整个网站不管是以何种方式访问,都会指向到 https://www.78kanshu.com 这个主入口。

可以通过如下四个链接测试实际效果:
1、http://78kanshu.com 2、https://78kanshu.com
3、http://www.78kanshu.com 4、https://www.78kanshu.com

发表评论

电子邮件地址不会被公开。 必填项已用*标注