修复WordPress永久链接404方法页面导航出错问题
- 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
WordPress使用404.php实现永久链接的方法请参考《WordPress永久链接在IIS下的实现》。
发现文章多于两页时,首页底部点击下一页(链接地址为http://witmax.cn/page/2),在第二页中上一页和下一页的地址都不正确了,分别是
显然是有问题,单击后结果也是不对的,变成显示首页了。正确的地址应该分别是
调试代码一级级跟踪导致以上问题的原因(追踪过程不罗列,涉及文件和函数较多),发现导航的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'];
如此,导航便正常了。
3.0.1中wp-settings找不到博主所说的代码,请问该怎么解决?
为什么我修改完后,整个页面居左了,而不是居中…?帮我一下,谢谢..
我也碰到了这样的问题。我看了一下原本的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’];
}
请问一下,要加入了你给出的这两行代码,具体应该加在那个语句后面呢?
谢谢!^_^
我的在本地用wamp测试,发表文章后查看,提示404错误,博主指导下如何解决问题
还是Linux的主机用得爽啊~~