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

已为老胡 2010-11-13 PM 1316℃ 7条

当使用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");
?>

非特殊说明,本博所有文章均为博主原创。

评论啦~