利用404.php去除index.php后无法正常翻页的解决方法

Dec 20th Sun, 2009/JiaJieChan/折腾/1,186 阅读/1 评论

   今天看到有人在百度通过关键字访问本博了,哈哈那个关键字是‘泳儿blog’,

 

 

      正在高兴的时候,发现翻页功能不能用了,在分页的链接上出现404.php/…… ,还以为是pagenavi的问题,可是使用wp自带的还是错误。

打开首页 分页是对的,显示如:http://blog.jiajieit.net/page/2

     但是一旦点击页码打开一个新的页面以后(以打开第二页为例子),再去点页码翻页,发现页码链接都变成,显示如:

http://blog.jiajieit.net/404.php/page/4?404;http://ttkx_org:80/page/2 ,还是打开第3页,

    点击任意分类Categories里的页码,发现页码链接,显示如:

http://blog.jiajieit.net/404.php/category/pcbaike/page/3?404;http://ttkx_org:80/category/pcbaike,打开第一页

    点击任意标签tag汇总的页码,也是同样的问题。

   测试过不同的主题风格,都是这样的。WP是2.9版本的

    但是使用默认链接格式就正常

一直用404.php伪静态链接的方式来定义的,方法如此:http://www.dreamfreeblog.com/wordpress-permalink-url-rewrite-windows-iis-261.html

   在Google上搜了1个小时找到了解决方法(原文):http://www.ttkx.org/404-connection-index-solution.html

 

解决方法(由畅如天鸣提供解决方法):

 

问题解释:以前wp2.7版本的时候好像没什么问题,应该是Wordpress2.7.1以上版本代码更改造成的,破坏了自定义404.php中对 Request_URI变量的设置, 而产生分页链接的函数get_pagenum_link是基于Request_URI的.

步骤:

下载你博客服务器目录下面的wp-settings.php文件:

             使用文本编辑器打开此文件找到第64行左右的:

if ( empty( $_SERVER['REQUEST_URI'] ) || ( php_sapi_name() != ‘cgi-fcgi’ && preg_match( ‘/^Microsoft-IIS//’, $_SERVER['SERVER_SOFTWARE'] ) ) ) {

替换为:

if ( empty( $_SERVER['REQUEST_URI'] ) ) {

保存并重新上传替换原文件,问题解决!!!

   替换后若出现页面错位请使用EditPlus 3(点击下载)或其他软件编辑php文件,使用记事本会出现错误。

声明: 本文采用 BY-NC-SA 协议进行许可. 转载请出示版权信息.
  1. Dec 22nd, 2009 at 12:33 / #Url

    过来回访下!!! :-D

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
支持使用Gravatar头像

JiaJieChan提醒您: 要回复某人的评论,请将鼠标移动到那条评论,评论右边就会出现Replay字样(一定是要鼠标指针中的评论),在评论框中出现的的后面下一行填写评论提交即可.被回复者将收到邮件通知噢; 要是想直接对本文评论请直接在评论框留言即可,然后点提交.