去年特殊时期,我的博客所在服务器被河蟹后,顺势由ZBLOG转成了Wordpress,由于采用了RSS导入,而前面一部分日志的RSS又不是全文输出的,导致的结果是部分日志在Wordpress里不全。为了照顾搜索引擎同时弥补上述问题带来的不便,我保留了ZBLOG时代的post目录,也就是说,现在仍然可以访问post下的日志,URL不变。但是,在Apache服务器下,有一个很大的问题,即服务器对大小写很敏感,以前用ZBLOG时,日志的URL部分是大写开头的(如: https://chidd.net/post/Cheer-chen.html),Apache服务器把这些大写全部转换成了小写,但是搜索引擎和其他网友引用这些特殊URL时用的还是以前的大写状态。访问 https://chidd.net/post/Cheer-chen.html这个地址时,服务器自然找不到已经变成小写的日志文档,导致404错误。

让Apache服务器忽略URL的大小写,也不是没有解决办法,起先我找到的方法是,修改httpd.con文件,在该文件最后加上:

CheckSpelling on mod_speling

但启动了CheckSpelling会降低Apache的执行效率,所以我博客服务器的管理员不同意在服务器上这样设置。

这样一来,只有想办法用脚本来实现忽略大小写了,今天搜索了下,有个叫hyperjiang的朋友写了段代码可以实现。思路是,把代码写进404页面(404.php),然后服务器会把请求的URL全部转换成小写,转换后能找到就跳到新页面,仍旧找不到就返回首页。

而所需要做的,仅仅是新建一个404文档(404.php),然后把下面的内容粘贴进去即可:继续阅读