在windows虚拟主机下WordPress伪静态后中文标签分类404错误问题

2014年8月,我的网站80后励志网又有了比较大的进步,日IP流量已经很接近3000IP了,这导致之前使用的万网M3主机的30G流量不够用了,本来想购买点流量应付过这个月,但是买流量的话,最少得买50G的,50G流量就要250元,空间商建议我还不如直接升级主机,我想想也是,结果就换了万网的G1主机.

换了以后才发现问题来了,万网G1只有windows的,没有Linux的,这样的话,我之前的很多设置都得改.

首先第一个问题就是80后励志网的一个二级目录博客的伪静态问题,我百度了一下,倒是很快解决掉了,也把这个方法分享在博客里.

windows环境下WordPress的伪静态是通过httpd.ini来实现的,用txt建立一个httpd.ini文件,内容如下:

  1. [ISAPI_Rewrite]
  2. CacheClockRate 3600
  3. RepeatLimit 32
  4. # For sub
  5. RewriteRule /blog/sitemap.xml /blog/sitemap.xml [L]
  6. RewriteRule /blog/favicon.ico /blog/favicon.ico [L]
  7. RewriteRule /blog/tag/(.*)/page/(\d+)$ /blog/index\.php\?tag=$1&paged=$2
  8. RewriteRule /blog/tag/(.+)$ /blog/index\.php\?tag=$1
  9. RewriteRule /blog/category/(.*)/page/(\d+)$ /blog/index\.php\?category_name=$1&paged=$2
  10. RewriteRule /blog/category/(.*) /blog/index\.php\?category_name=$1
  11. RewriteRule /blog/wp-(.*) /blog/wp-$1 [L] --phpfensi.com
  12. RewriteRule ^/blog/$ /blog/index.php [L]
  13. RewriteRule /blog/(.*) /blog/index.php/$1 [L]
  14. RewriteRule /blog/page/(.*)/?s=(.*) /blog/index\.php\?s=$2&paged=$1
  15. RewriteRule /blog/page/(.*) /blog/index\.php\?paged=$1

注:/blog/是我二级目录博客的地址,如果大家的WordPress是放在根目录的话,就直接用“/”即可.

第二个问题,伪静态后,中文标签分类出现404错误,因为Win主机下wordpress不支持中文tag标签.

解决方法如下:

1.打开wp-include文件夹,找到并打开编辑class-wp.php文件.

2.查找代码:

$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';

把这句代码替换成:

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");

3.查找代码:

list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );

把这句代码替换成:

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");