wordpress中标签显示404错误怎么办
答案:4 悬赏:20 手机版
解决时间 2021-03-08 14:39
- 提问者网友:疯孩纸
- 2021-03-08 01:06
我的wp3.1.2版本,一直没有升级怕会有副作用。点击标签会出现404错误,我按照网上的方法把class-wp文件下载打开后发现,和网上要我修改后的是一样的,也就是不用修改了,不知道还能怎么办。请高手指教我
最佳答案
- 五星知识达人网友:山君与见山
- 2021-03-08 02:00
解决分类目录和标签打开错误:
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错误问题。
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错误问题。
全部回答
- 1楼网友:玩家
- 2021-03-08 06:03
楼主是用的windows环境吗?如果是建议配置一下伪静态规则
方法一:404错误文件替换法
具体流程:
1、新建一个文本文件,把以下代码复制到文件中;
2、修改文件名称个后缀为404.php,并修改编码格式为utf-8;
3、上传404.php文件至网站根目录(www…);
4、进入主机管理后台,修改网站的跳转页面为上传的404.php文件;
5、wordpress后台》设置》固定链接》自定义为:/%post_id%.html
6、如果主题文件夹中已经有了404.php,一定记得删除,因为主题中的文件默认级别最高,会导致以上所添加的404.php文件失效;
方法二:httpd.ini文件伪静态法
具体流程:
1、新建文本文件,打开并添加以下代码;
[isapi_rewrite]
# defend your computer from some worm attacks
#rewriterule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [f,i,o]
# 3600 = 1 hour
cacheclockrate 3600
repeatlimit 32
# protect httpd.ini and httpd.parse.errors files
# from accessing through http
# rules to ensure that normal content gets through
rewriterule /tag/(.*) /index\.php\?tag=$1
rewriterule /software-files/(.*) /software-files/$1 [l]
rewriterule /images/(.*) /images/$1 [l]
rewriterule /sitemap.xml /sitemap.xml [l]
rewriterule /favicon.ico /favicon.ico [l]
# for file-based wordpress content (i.e. theme), admin, etc.
rewriterule /wp-(.*) /wp-$1 [l]
# for normal wordpress content, via index.php
rewriterule ^/$ /index.php [l]
rewriterule /(.*) /index.php/$1 [l]2、修改文件名称后后缀为httpd.ini;
3、上传至网站个目录;
4、wordpress后台》设置》固定链接 自定义修改为:/%post_id%.html;
总结:
如果不想这么麻烦,建议一开始就选择linux/unix操作系统吧,wordpress建站所取空间的最佳组合为:php语言+linux系统+mysql数据库。
- 2楼网友:纵马山川剑自提
- 2021-03-08 04:52
1.打开wp-include中的classes.php文件,找到第154行和第159行代码进行修改
第154行原代码:
$pathinfo = $_SERVER['PATH_INFO'];
替换为:
2.$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);
第159行原代码:
3.修改好了之后,保存,然后将保存后的classes.php文件上传到服务器并覆盖原文件即可
- 3楼网友:十年萤火照君眠
- 2021-03-08 03:37
是不是中文标签?
打开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主机不会有这问题
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯