摘要: 又把网站从Linux改成了Windows,然后悲剧的发现Windows默认是不支持WordPress的伪静态……这绝对是不可以接受的结果……于是百度之,然后解决,说下做法: 在IIS配置WordPress URL Rewrite组件。组件发布页:http://...
又把网站从Linux改成了Windows,然后悲剧的发现Windows默认是不支持WordPress的伪静态……这绝对是不可以接受的结果……于是百度之,然后解决,说下做法:
在IIS配置WordPress URL Rewrite组件。组件发布页:http://www.binaryfortress.com/wordpress-url-rewrite,下载此组件以后,把压缩包解压到任何地方,保持WordPressURLRewrite.ini和WordPressURLRewrite32.dll(32位版本,64位版本对应为64.dll)在同一文件夹下就可以了。然后打开WordPressURLRewrite.ini设置博客目录,以及需要排除的目录,默认即可。接下来,在IIS中选择相应的站点,在ISAPI筛选器中加载WordPressURLRewrite32.dll。注意:要给dll所在的目录加上IIS_WPG组的写入权限,否则无法加载对应dll文件。
当然,这样做完之后,是无法支持中文的tags的,那么在进行如下操作:
在WordPress根目录下的wp-includes文件夹中找到classes-wp.php,然后:
1.找到代码
$pathinfo = $_SERVER['PATH_INFO'];
将其修改为
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'],"UTF-8","GBK");
2.找到代码
$req_uri = $_SERVER['REQUEST_URI'];
将其修改为
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'],"UTF-8","GBK");
我的网站转换前有的页面现在没了,所以我做了个404.php,并放到网站根目录,然后在IIS设置了下,将默认的404页面改成下面的内容:
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs,strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>