使用404方法对Wordpress进行伪静态后看似一切正常,但是当博客文章达到翻页的数量是问题就出来了
翻页时往往第二页是正确的。
会有如同 http://www.168hot.com.cn/page/2 的链接。
但是从第二页再翻回第一页时就会出现 http://www.168hot.com.cn/404.php/page/1?404;http://www.168hot.com.cn:80/page/2 这样的错误链接。
解决方法:将之前新建的404.php代码换成如下代码即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?php // This is the default file for the site. Usually index.php $default = 'index.php'; // The name of this file. // Set this value for the URL in Custom Error Properties of your website in IIS. // Goto: IIS Manager > Websites > [Site Name] > Properties > Custom Errors > // 404 & 404;2 & 404;3 > URL (Requires a '/' prefix in IIS). $thisfile = '404.php'; //404.php修改为你的404页面名称即可 $_SERVER['ORIG_PATH_TRANSLATED'] = str_replace($thisfile, $default, $_SERVER ['ORIG_PATH_TRANSLATED']); $_SERVER['SCRIPT_FILENAME'] = str_replace($thisfile, $default, $_SERVER['SCRIPT_FILENAME']); $_SERVER['ORIG_PATH_INFO'] = str_replace($thisfile, $default, $_SERVER['ORIG_PATH_INFO']); $_SERVER['SCRIPT_NAME'] = str_replace($thisfile, $default, $_SERVER['SCRIPT_NAME']); $_SERVER['PHP_SELF'] = str_replace($thisfile, $default, $_SERVER['PHP_SELF']); $_SERVER['PATH_INFO'] = false; $qs =& $_SERVER['QUERY_STRING']; $ru =& $_SERVER['REQUEST_URI']; $pos = strrpos($qs, '://'); $pos = strpos($qs, '/', $pos + 4); $_SERVER['URL'] = $ru = substr($qs, $pos); $qs = trim(stristr($ru, '?'), '?'); // Required for WordPress 2.8+ $_SERVER['HTTP_X_ORIGINAL_URL'] = $ru; // Fix GET vars foreach ( $_GET as $var => $val ) { if ( substr($var, 0, 3) == '404') { if ( strstr($var, '?') ) { $newvar = substr($var, strpos($var, '?') + 1); $_GET[$newvar] = $val; } unset($_GET[$var]); } break; } include($default); ?> |
声明: 本文由( 炫酷网站设计建设 )原创编译,转载请保留链接: 解决WordPress用404方法伪静态后文章列表分页链接错误的问题