相信大家都知道一个页面被永久不再使用的时候,都会重定向到新的一个页面,否则将会出现404 not found。一般情况下服务器端可以告知浏览器这个页面已经永久重定向到指定的页面,而永久重定向称作301重定向。

一般情况下服务端可以这么写

header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.crackedzone.com/front-end-project-bootstrap.html");

如果当页面是html的时候,这时就无法使用服务器端的语言去告知浏览器改页面已经永久重定向了。
或者我们会使用


上面这种通过meta跳转的给搜索引擎传递的header 状态码一般是 200(页面被找到) 或者 302(暂时重定向)。

一般情况下这种方式需要在apache或者IIS中写规则,告诉浏览器这个html页面已经永久重定向了。
但是一般的服务商是不允许开放这个权限。但是404页面大部分服务器都会给予。

当页面未找到的时候默认使用一个404.php的文件,这个文件的命名可能是nofound.php之类的,但这都不影响我们的需求。

通过这个文件我们可以自定义出人性化的404页面。此时我们可以在页面的头部加上一个是否301的判断。

举一个简单的例子,我的博客上有一个不存在的页面 /test-not-found.html
我先测试一下的它的HTTP状态码,返回是404。

此时我在404.php的头部加上下面代码:

$host = $_SERVER['HTTP_HOST'];
$url  = $host . $_SERVER['REQUEST_URI'];

if ( strpos($url, $host . '/test-not-found.html') !== FALSE ) {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: " . $host . '/front-end-project-bootstrap.html');
    exit();
}

// 下面404页面内容

我们再查询一次他的HTTP状态码

由此可见,这个页面已经返回301状态码。

上述例子,告诉我们,当访问/test-not-found.html 这个文件出现404未找到的时候(也就是这个文件必须不存在,我们可以放心删除它)。
这时候我们在404页面中告诉浏览器说,改页面已经301重定向到/front-end-project-bootstrap.html

查看HTTP状态可以使用站长工具:http://tool.chinaz.com/pagestatus/

在敏捷回顾会议中引导使用ORID

头一次接触ORID方法在2015年的一次敏捷回顾上,但是还不知道它,当天围坐在小会议室中通过该方法总结迭代开发经验,使我很有收获。ORID工作法很好理解,几乎一听就会,只是日常工作中我们总会选择更偷懒的方法,而忽略了总结过程中思考和逻辑的重要性。根据百度百科,ORID是一种...… Continue reading

生产环境Linux部署

Published on July 12, 2017

SVN 迁移到 GitLab

Published on June 17, 2017