域名301重定向到www

前言

将博客部署到gitpage,访问速度是一个大问题,每次TTFB都是四五秒。因此,选用虚拟主机来部署静态html博客,加快博客访问速度,这个时候就会遇到一个SEO的问题。

当我们在采用gitpage的时候,可以通过在根目录加一个CNAME文件,内容为www.tanrd.com ,github主机会自动将tanrd.com永久重定向到www.tanrd.com 。而在采用虚拟主机部署的时候,这个301重定向就需要自己来设置了。

在阿里云设置域名解析的时候,既设置了根域名tanrd.com解析到主机,也设置了www.tanrd.com 解析到主机,然而搜索引擎收录的内容都是之前以www开头的域名。为了继续沿用一个域名作为SEO的主要域名,需要将不带www的域名解析到带www的域名。

代码

虚拟主机支持php解析,因此在hexo的_posts目录中增加一个index.php文件,同时在虚拟主机设置优先读取的首页为index.php。根据域名判断为tanrd.com的时候,在请求head中增加301重定向信息,当域名为www.tanrd.com 的时候,直接include返回hexo自动生成的index.html文件。

<?php
$the_host = $_SERVER['HTTP_HOST'];
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if($the_host == 'tanrd.com')
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.tanrd.com'.$request_uri);
}else{
//require('index.html'); require每次都首先加载,include执行到再加载
include('index.html');
}
?>