我们在WordPress管理后台一般都可以看到WordPress几乎每一个主题都有一个404页面模板。WordPress自带的404页面允许你在不设置服务器主机的情况下成功返回404 HTTP server header。甚至你都不需要在404页面文件的头部加上:<?php header(“HTTP/1.1 404 Not Found); ?>。这些都由WordPress主题中自带的404页面模板实现了,牛X。比如default主题的代码:
<?php get_header(); ?> <div id="content"> <h2><?php _e('Error 404 - Not Found', 'kubrick'); ?></h2> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
只要在<div id=content></div>里面写入任何属于你的有创意的404错误页面提示和访问者友好导航。
404页面模板设置上传好,用Firefox的调试工具firebug检查404出错页面导致服务器返回的sever response的情况,比如出错页:http://www.farlee.info/archives/2.html;,检查结果HTTP 状态码已经是显示404 Not Found。OK。
但是,这时候,我们再打开http://www.farlee.info/archives; 这个错误页面地址测试的时候,发现WordPress竟然返回的是和上面完全不一样的404页面。用firebug检查其headers HTTP 状态码返回 200。仔细一看原来这个出错页面返回的是我在IIS服务器虚拟主机上设置的自定义404页面。也就是,你要另外再做一个404页面来实现 http://www.xxx.com/abc;类似错误地址的404转向。远方博客IIS/Apache环境下如何做404页面(php/asp中设置)这篇文章详细介绍了WordPress(PHP)如何在IIS下自定义404页面设置。这里不再分开详述,简要记一下我在IIS下设置404页面的曲折步骤:
- 1.虚拟主机环境介绍:Microsoft window主机-IIS/6.0。 程序WordPress2.9.1(废话,即表示php)。空间提供商不说了,免得有做广告的嫌疑;
- 2.自定义404页面制作:打开WordPress自带的404页面模板返回的错误页面,如:http://www.farlee.info/archives/2.html,复制HTML源代码至新建的404.php文件中(由于WordPress对get_header等函数进行了一系列的封装,要在404页面直接调用比较麻烦,所以就偷懒将html静态页面加进去,保证整体风格一致就行了,嘿嘿。直接调用将出现致命错误提示:
Fatal error: Call to undefined function get_header() in D:\wwwroot\listen\wwwroot\404.php on line 1
修改<div id=content></div>之间的内容;在文件头部加上: <?php header(“HTTP/1.1 404 Not Found); ?>。
- 3.上传到设置好的404.php到网站根目录下;
- 4.虚拟主机管理后台:虚拟主机管理–出错页面自定义–设置自定义错误(…);
- 5.管理后台只能设置404b.htm为自定义404页面,同时返回的是200状态码–只能联系主机空间商帮助手工设置
- 6.告知你的自定义WordPress 404页面文件的位置和ftp账号密码
- 7.空间商IIS服务器端设置:找到网站–右键属性–自定义错误–错误类型404-消息类型(动态网页改成url)–内容设置为根目录的404.php。如下图:
最后提一点:要注意自定义404页面大小要超过512字节,ie浏览器将不会启用小于512字节的404页面。