wordpress中标签显示404错误怎么办
推荐于2016-11-24 · 知道合伙人数码行家
知道合伙人数码行家
向TA提问 私信TA
解决分类目录和标签打开错误:
1、在wp-includs文件夹下面,找到rewrite.php文件,复制保存或者下载下来。保存一下,防止修改出处,万一出错了,可以覆盖还原。
2、然后用记事本打开rewrite.php文件,找到这个函数名:function get_category_permastruct()(大约在970行),代码如下:
functionget_category_permastruct(){
if(isset($this->category_structure))
return$this->category_structure;
if(empty($this->permalink_structure)){
$this->category_structure=”;
returnfalse;
}
if(empty($this->category_base))
$this->category_structure=trailingslashit($this->front.‘category’ );
else
$this->category_structure=trailingslashit(‘/’ .$this->root.$this->category_base);
$this->category_structure.=‘%category%’;
return$this->category_structure;
}
3、然后在这个下面找到
if(empty($this->permalink_structure))
把这个改为
if(!empty($this->permalink_structure))
注意,这里只加了一个英文‘!’解决了wordpress分类目录404错误的问题。
4、再找到这个函数function get_tag_permastruct()(大约在986行),里面也有一个
if(empty($this->permalink_structure))
一样,还是改为
if(!empty($this->permalink_structure))
这里只加了一个英文‘!’解决了wordpress的tag标签404错误的问题。至此所有的问题都解决了,看看是不是很简单啊!
5、有些同学打开3.2.1版rewrite.php文件的时候,可能没有发现上述方法中的代码,而是如下的内容:
functionget_category_permastruct(){return$this->get_extra_permastruct('category');}
应该是对代码进行了优化。往下找,找到了function get_extra_permastruct($name),代码如下:
functionget_extra_permastruct($name){if(empty($this->permalink_structure))returnfalse;if(isset($this->extra_permastructs[$name]))return$this->extra_permastructs[$name][0];returnfalse;}
6、对这段代码进行修改,添加个英文”!”即可,改为如下形式:
functionget_extra_permastruct($name){if(!empty($this->permalink_structure))returnfalse;if(isset($this->extra_permastructs[$name]))return$this->extra_permastructs[$name][0];returnfalse;}
即把代码
if(empty($this->permalink_structure))
中的empty前加上英文的惊叹号“!”
上传覆盖掉原来的文件即可完美解决设置固定链接后分类目录和标签的404错误问题。
第154行原代码:
$pathinfo = $_SERVER['PATH_INFO'];
替换为:
2.$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);
第159行原代码:
3.修改好了之后,保存,然后将保存后的classes.php文件上传到服务器并覆盖原文件即可
打开wp-include中的classes.php文件,找到第154行和第159行代码进行修改
第154行原代码:
$pathinfo = $_SERVER['PATH_INFO'];
替换为:
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);
第159行原代码:
$req_uri = $_SERVER['REQUEST_URI'];
替换为:
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”);
修改好了之后,保存,然后将保存后的classes.php文件上传到服务器并覆盖原文件即可
还有楼上的兄弟提到的,win主机是不中文链接格式,也就是标签的别名不能是中文,得改成英文,linux主机不会有这问题