Hello! 欢迎来到盒子萌!

WordPress设置固定链接分类目录404


avatar
DarkT 2012-10-24 29

昨天本站换了固定链接,发现分类目录打不开了,就到百度了一下,找到了解决方法,在这里分享下。

1、解决分类目录和标签打开错误。

在wp-includs文件夹下面,找到rewrite.php文件,在修改的时候注意备份,出现问题能及时修补回原来的状态。

用记事本(推荐EditPlus或者UltraEdit)打开,找到function get_extra_permastruct($name)这个方法,代码如下:

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;
 }

对这段代码进行修改,添加个英文”!”即可,改为如下形式:

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;
 }

上传覆盖掉原来的文件即可完美解决设置固定链接后分类目录和标签的404错误问题。

2、解决打开文章页面出现404错误。

上述代码的修改并不能解决文章页面打开错误的问题。经查询研究,是服务器伪静态的原因。首先向空间商询问是否支持伪静态,如果支持则让对方开启,不支持建议换一个支持伪静态的空间。空间默认是开启伪静态的,只需把规则httpd.ini配置文件放到web根目录即可。但是wordpress程序没有带httpd.ini文件,这是win主机的配置。于是新建一个,配置规则代码如下:

[ISAPI_Rewrite]

# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP

# duoduo Rewrite规则
RewriteRule ^/index\.html$ /index\.php
RewriteRule ^/sitemap\.html$ /sitemap\.php
RewriteRule ^/malllist\.html$ /malllist\.php
RewriteRule ^/shoplist\.html$ /shoplist\.php
RewriteRule ^/article\.html$ /article\.php
RewriteRule ^/user/center\.html$ /user/center\.php
RewriteRule ^/mall-(.*)\.html$ /mall\.php\?id=$1
RewriteRule ^/view-(.*)-(.*)\.html$ /view\.php\?iid=$1&page=$2
RewriteRule ^/view-(.*)\.html$ /view\.php\?iid=$1
RewriteRule ^/malllist-(.*)-(.*)-(.*)\.html$ /malllist\.php\?catid=$1&mall=$2&page=$3
RewriteRule ^/article_list-(.*)-(.*)\.html$ /article_list\.php\?cid=$1&page=$2
RewriteRule ^/article_list-(.*)\.html$ /article_list\.php\?cid=$1
RewriteRule ^/read-(.*)\.html$ /read\.php\?id=$1
RewriteRule ^/list-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)\.html$ /list\.php\?cid=$1&start_price=$2&end_price=$3&sort=$4&area=$5&guarantee=$6&list=$7&q=$8&page=$9
RewriteRule ^/shop-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)\.html$ /shop\.php\?nick=$1&start_price=$2&end_price=$3&sort=$4&area=$5&guarantee=$6&list=$7&q=$8&page=$9
RewriteRule ^/shoplist-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)\.html$ /shoplist\.php\?cid=$1&keyword=$2&start_level=$3&end_level=$4&area=$5&px=$6&cpr=$7&type=$8&page=$9
RewriteRule ^/shoplist-(.*)\.html$ /shoplist\.php\?cid=$1
RewriteRule ^/shop-(.*)\.html$ /shop\.php\?nick=$1
RewriteRule ^/list-(.*)\.html$ /list\.php\?cid=$1
RewriteRule ^/list\.html$ /list\.php

另外请建一个.htaccess(建一个空白的文本文档,另存一下即可)的文件上传到根目录。
刷新或者重新打开网站。此时,你会发现文章可以正常打开阅读了。

暂无评论

发表评论