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

转移wordpress数据库后不能添加文章的一次查错

前几日转移了一个wordpress博客, 用phpadmin导出了数据库, 然后在新的数据库服务器上执行sql导入数据库.

重新安装wordpress后, 一切正常. 但隔日发现无法发布文章, 也无法上传图片.

3389服务器, 通过调试php文件, 逐级die测试, 最终把错误锚定在posts表的insert语句执行上.

执行以后wpdb产生一个隐藏的错误

Field ‘post_mime_type’ doesn’t have a default value

打开数据库后发现, post_mime_type本应有一个”默认值的, 现在却没有了. 同时发现该表的其他若干字段的默认值也丢失了.

修改默认值后, 问题解决.

对于默认值的丢失是导出数据库时设置不当, 还是phpadmin或mysql本身的问题, 目前还在查找中.

贴出此文, 希望对遇到同类问题的朋友有所帮助.