使用404.php重写wordpress的URL, 导致分页URL出错的终极解决方案

如题, 当使用404.php重写URL的时候, 会导致文章分页的URL混乱.

网上盛传的解决方法是修改wp-setting.php文件.

但是存在一个问题, wordpress版本更新很快, 每次更新版本后, wp-setting.php文件都会自动更新, 从而导致修改被覆盖.

而且每次修改wp-setting.php很麻烦, 另外, 修改后发现中文slug的文章category页面显示不正常了.

最后反复研究url的问题, 得出终极解决方案: 只需要更新你的404.php, 一劳永逸, 而且中文url打不开的问题也一并解决了!!!

不多废话, 贴出代码:

< ?php
$qs = $_SERVER['QUERY_STRING'];
 
$qsu = mb_convert_encoding("$qs","UTF-8","UTF-8");
 
$_SERVER['REQUEST_URI'] = substr($qsu, strpos($qsu, ':80')+3);
 
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");
?>

You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">