修复WordPress永久链接404方法页面导航出错问题



    WordPress使用404.php实现永久链接的方法请参考《WordPress永久链接在IIS下的实现》。

    发现文章多于两页时,首页底部点击下一页(链接地址为http://witmax.cn/page/2),在第二页中上一页和下一页的地址都不正确了,分别是

    • http://witmax.cn/404.php/?404;http://witmax_cn:80/page/2
    • http://witmax.cn/404.php/page/3?404;http://witmax_cn:80/page/2


    显然是有问题,单击后结果也是不对的,变成显示首页了。正确的地址应该分别是

    • http://witmax.cn/page/1
    • http://witmax.cn/page/3

    调试代码一级级跟踪导致以上问题的原因(追踪过程不罗列,涉及文件和函数较多),发现导航的URL输出与$_SERVER['REQUEST_URI']值有关,文章显示过程中该值发生了变化,而追踪后发现问题是$_SERVER['QUERY_STRING']和$_SERVER['SCRIPT_NAME']导致的(相关代码位于wp-settings.php文件80行附近,wordpress 2.8版本,其他版本请自行搜索)。

    解决方法是增加如下两行代码:

    $_SERVER['QUERY_STRING'] = "";
    $_SERVER['SCRIPT_NAME'] = $_SERVER['PATH_INFO'];

    如此,导航便正常了。



    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《修复WordPress永久链接404方法页面导航出错问题
    标签:
    分享:

已经有11 条评论抢在你前面了~

  1. 沙发
    瘦米中文 2010年8月30日 上午11:03

    3.0.1中wp-settings找不到博主所说的代码,请问该怎么解决?

    [回复]

    晴枫

    晴枫 回复:

    @瘦米中文, 文中修改的是wp2.8版本;应该是3.0代码位置做了调整,你可以把所有wp目录下和wp-include目录下的所有php文件打开来搜索一下

    [回复]

  2. 板凳
    cwz 2010年7月20日 上午2:06

    为什么我修改完后,整个页面居左了,而不是居中…?帮我一下,谢谢..

    [回复]

    晴枫

    晴枫 回复:

    @cwz, 猜测是程序有错,网页内容没有完全输出导致的

    [回复]

  3. 地板
    小羊 2010年6月6日 下午12:43

    我也碰到了这样的问题。我看了一下原本的wp-settings.php文件80行以后的代码是:
    // Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
    if ( isset($_SERVER[‘PATH_INFO’]) ) {
    if ( $_SERVER[‘PATH_INFO’] == $_SERVER[‘SCRIPT_NAME’] )
    $_SERVER[‘REQUEST_URI’] = $_SERVER[‘PATH_INFO’];
    else
    $_SERVER[‘REQUEST_URI’] = $_SERVER[‘SCRIPT_NAME’] . $_SERVER[‘PATH_INFO’];
    }

    // Append the query string if it exists and isn’t null
    if (isset($_SERVER[‘QUERY_STRING’]) && !empty($_SERVER[‘QUERY_STRING’])) {
    $_SERVER[‘REQUEST_URI’] .= ‘?’ . $_SERVER[‘QUERY_STRING’];
    }
    请问一下,要加入了你给出的这两行代码,具体应该加在那个语句后面呢?
    谢谢!^_^

    [回复]

    晴枫

    晴枫 回复:

    @小羊, 在用不到$_SERVER[‘QUERY_STRING’]值的地方之后加
    参考http://witmax.cn/wordpress-permalink-with-iis.html

    [回复]

    小羊 回复:

    @晴枫, 非常感谢晴枫,在你的指引之下,我的问题基本已经解决!

    [回复]

  4. 4楼
    山寨笔记本 2010年5月7日 下午1:00

    我的在本地用wamp测试,发表文章后查看,提示404错误,博主指导下如何解决问题

    [回复]

    晴枫

    晴枫 回复:

    @山寨笔记本, 可能是永久链接规则没效造成的,可在后台将永久链接设置改为默认试试看

    [回复]

  5. 晴枫
    5楼
    晴枫 2009年9月16日 下午4:37

    @孤毒老鼠
    这个是,不过用着免费空间也就不想啥了,兵来将挡水来土掩

    [回复]

  6. 6楼
    孤毒老鼠 2009年9月16日 下午1:27

    还是Linux的主机用得爽啊~~

    [回复]

无觅相关文章插件,快速提升流量