这个问题是几年前遇到的了,如今回过头再来看,当初的这个解决办法确实有些草率——因为我忽略了一个重要的因素,那就是编码问题。
按照这篇文章的办法解决之后确实好使——前提是你必须在博客内点击才有效,但是一旦你遇到了类似这样的抓取连接:
虽然点开之后浏览器的地址栏里显示的仍旧是中文,但此中文却早已非彼中文了。编码不同导致的直接结果就是——404!
难怪当时第一个评论回复的是无效呢!呵呵。
那么究竟该怎么解决呢?我想,最完美的办法恐怕还是使用别名的方式了,分类目录使用中文,但是WordPress还是提供了分类目录的别名选项,你可以将别名设置为拼音,或者英文简写,甚至干脆就是英文单词也是可以的,这样,就里外全部都兼容啦。
我猜这个问题应该是每个用wordpress都会遇到的吧?我居然这么久都没有发现,汗~
当wordpress遭遇中文分类目录的时候,就会出现404,而把分类改成英文就能够打开,这大概是因为页面静态化造成的吧。可是要把每一个分类都英文化这样又会让读者看着眼晕——谁喜欢鸟语啊哈哈
所以,还是找到了另一种解决办法,我用这个办法完美解决,主要是参考了这里。
解决办法很简单,就是一个“!”的问题,好了,我们开始。
首先在你博客空间的wp-includs文件夹下面,找到rewrite.php文件,然后做一下备份,我们要修改的内容就在这里面。
接着打开已经备份过的rewrite.php,在大概1000行的地方找到如下内容,当然,代码之间灰色的注释你是应该忽略掉的呵呵。
function get_category_permastruct() {
return $this->get_extra_permastruct(‘category’);
}
function get_tag_permastruct() {
return $this->get_extra_permastruct(‘post_tag’);}
function get_extra_permastruct($name) {
if ( empty($this->permalink_structure) )
return false;if ( isset($this->extra_permastructs[$name]) )
return $this->extra_permastructs[$name][0];return false;
}
没错,我们要修改的就是 if ( empty($this->permalink_structure) )这一行,在empty前面添加一个英文的叹号,即
if ( empty($this->permalink_structure) )
if ( !empty($this->permalink_structure) )
然后保存即可:)
本文由 落格博客 原创撰写:落格博客 » 当wordpress遇到中文分类目录,完美解决404!
转载请保留出处和原文链接:https://www.logcg.com/archives/146.html
我当初还以为是windows server的毛病,后来换了Android 4.4.4,也是一样,最后才发现是伪静态的问题😂
留印….回去试试
把分类目录的别名修改成英文,也可以解决这个问题。详见http://cn.digitoz.com/cncategory/
你说的不错,但如果是已经运行了好久的博客,再那样改我想不是一个小工程了,包括收录等等的都会收到影响。另外,有些分类还是写成中文比较好看……
=。=毕竟,是中文博客哈哈:)
当然了,如果是新博客,用这样的方法做好规划也是不错的!
我现在的详情页面还是会出现 404.。
嗯…现在在外边,晚上回去我去看看
……你说的详情页面是在哪里……
感谢万分呀。我也成功了!欢迎到www.laiju123.com 淘优品
@乂安
我也成功了。 我的wordpress版本为3.4.1
哈哈是吧,我就说嘛~
没用
= =你的版本?我用最新版更改成功的。