IIS下wordpress永久链接(PermaLink)不用rewrite使用404页面实现

如果是在Linux主机下,主机支持mod_rewrite的话,那就不需要费那么大的劲,但是一部分WordPress是安装在Windows主机上的,要想使伪静态就有点麻烦。我在网上找了很多wordpress的rewrite规则,但是都不敢用。wordpress又不提供标准rewrite规则,真是麻烦。

在网上找wordpress的404页面使用的时候居然找到一个教程,原理是利用404错误页面重写URL,达到wordpress的伪静态。这样就可以在IIS下实现漂亮的URL。

第一,建一个404.php文件在你的WordPress根目录中,文件内容如下:
<?php
$qs = $_SERVER[‘QUERY_STRING’];
$_SERVER[‘REQUEST_URI’] = substr($qs, strpos($qs, ‘:80′)+3);
$_SERVER[‘PATH_INFO’] = $_SERVER[‘REQUEST_URI’];
include(’index.php’);
?>

第二,设置站点404错误页面,独立服务器的可以直接操作IIS,如果是虚拟主机的,现在大部分虚拟主机控制面板都支持设置404错误页面,你把地址设置为”/404.php”。
自己管理iis的,可以通过网站属性-自定义错误来设置404错误页面,不过也要用绝对地址”/404.php”。
第三,登陆你的wordpress后台,设置->永久链接,结构可以任意设置,如:
/%year%/%monthnum%/%postname%/

问题:
不支持中文,postname和tag最好是英文的,中文的还是无法访问。中文的tag可以去设置一下tag slug

在网上查一些资料,才明白原因。原来带有中文的postname和tag的url其实是属于gbk编码,但是wordpress是utf-8编码。所以在404页面中要把网址转码称utf-8,这样就能完美解决404页面实现rewrite的不支持中文问题。

渴慕晨光使用的404页面是:404错误页面