解决windows主机安装wordpress利用404.php伪静态翻页错误

这个过程是让人很蛋痛的,但没办法,为了使博客收录情况好一点,为能使用缓存页面插件而速度快一点,总放不下要伪静态这个决定。虽然是WIN主机,但有伪静态功能,可惜西部数码的使用说明让人找不着北,只好另寻出路。

搜索很多方面,成功用动态404.php错误页面使页面伪静态化,也着实为此高兴了一个下午。但很快我就开心不起来了:这个404代码虽然能使日志页面静态化,但日志分页却出错。翻到下一页老提示“找不到文章”。

没有办法,只能另找出路。今晚几乎是一晚上都在试代码,但网上的代码不是出错就根本没用。不过黄天不负有心人,让我成功找到用动态404.php错误页面使页面伪静态化的代码。使用后测试所有页面(包括有网友说的TAG翻页出错问题)均正常。

代码如下:

<?php
$qs = $_SERVER[‘QUERY_STRING’];
$qsu = mb_convert_encoding(“$qs”, “UTF-8”, “UTF-8″);
$pos = strrpos($qs, ‘://’);
$pos = strpos($qs, ‘/’, $pos + 4);
$_SERVER[‘REQUEST_URI’] = substr($qsu, $pos);
if (strpos($_SERVER[‘REQUEST_URI’], ‘?’) > 0) {
$_SERVER[‘SCRIPT_NAME’] = $_SERVER[‘ORIG_PATH_INFO’] = substr($_SERVER[‘REQUEST_URI’], 0, strpos($_SERVER[‘REQUEST_URI’], ‘?’));
$_SERVER[‘QUERY_STRING’] = substr($_SERVER[‘REQUEST_URI’], strpos($_SERVER[‘REQUEST_URI’], ‘?’) + 1);
} else {
$_SERVER[‘SCRIPT_NAME’] = $_SERVER[‘ORIG_PATH_INFO’] = $_SERVER[‘REQUEST_URI’];
$_SERVER[‘QUERY_STRING’] = ”;
}
include(“index.php”);?>

使用方法很简单:复制上面的代码于记本事中,保存为“404.php”或者其它名字即可,并上传到主机的根目录里。登陆你的虚拟主机,在控制面板里设置404错误页,选择开启动态404错误页,然后把这个页面设为你刚才保存的404.php.

在wordpress后台中,设置,固定链接,自定义,/post/$post_id$.html 或者其它的都可以吧(没试过,偶只是用这个测试)。确定,然后到博客首页刷新,点击测试一下,大功造成

3 条评论

  • 自来也 2016 年 8 月 27 日 回复

    自己的网站用的是阿里云的虚拟主机,之前用的是自定义连接,后来考虑到收录,改成了固定连接,但是出现了标签和关键词点击的时候,会跳到404页面,这个不知道是怎么回事。就像这个http://www.zilaiye.cc/3086.html,关键词点击之后会跳到404页面。现在标签云都给停了,因为用不了啊

  • 象牙塔 2011 年 12 月 19 日 回复

    /%post_id%.html 这个可以用!

    • 阿柯 2011 年 12 月 19 日 回复

      不但那个可以吧?呵呵。。你试试其它的

发表评论

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