看标题就知道了,要解决的是Windows环境下WordPress伪静态的问题,为什么我要写这个呢?因为我的博客遇到了这个问题,所以在网上找了很多资料,大概有两种方法。具体方法下面会详细说明。
1. 为什么要实现固定连接伪静态呢?
WordPress有这样一句话:“WordPress允许您更改默认的链接形式,以此提高 URL 的可读性和对搜索引擎的友好程度”。默认的那个问号后面带参数的链接不仅让人看着不爽啊,搜索引擎很多时候也不喜欢,其实做SEO的都懂的。
大家可以看一下上面的这个图,其实除了默认的那个链接结构是个动态的带着问号,其他三个“日期和文章名”,“月份和文章名”,“数字”的链接结构都是属于伪静态的,如果你的Windows主机本身就支持伪静态,那这三种结构是支持的。但是域名后面都带有一个index.php,这个不仅会是网址的层级变深,而且实在让很多人看着不舒服,对于追求完美的博主我来说当然也是不喜欢啦。我最后选择的是自定义结构,实现后的效果是这样的http://www.XXX.org/20110728146.html,有兴趣的可以去我的博客看一下,层次很少并且实现了伪静态。
2. 如此完美的伪静态是如何实现的呢?
开始我也说了大概有两种方法:
(1)如果有自己独立主机或VPS的朋友,可以在IIS配置一个WordPress URL Rewrite组件就行了。组件发布页:http://www.binaryfortress.com/wordpress-url-rewrite,下载此组件以后,把压缩包解压到任何地方,保持WordPressURLRewrite.ini和WordPressURLRewrite32.dll(32位版本,64位版本对应为64.dll)在同一文件夹下就可以了。然后打开WordPressURLRewrite.ini设置你的博客目录,以及需要排除的目录,这里就不详细说了,Readme.txt里有详细说明。接下来,在IIS中选择相应的站点,在ISAPI筛选器中加载WordPressURLRewrite32.dll就可以了。注意:要给dll所在的目录加上IIS_WPG组的写入权限,否则无法加载对应dll文件。此方法在我之前服务的公司操作过,可以实现。对于使用虚拟机的朋友来说就不能实现了,因为无法操作IIS设置。
(2)利用404页面实现伪静态的方法
相信很多站长都是这样实现的,方法步骤如下:首先在网站的根目录建立一个404.php的文件,并写入以下代码。
$qs = $_SERVER'QUERY_STRING';
$_SERVER'REQUEST_URI' = substr($qs,strpos($qs, ':80')+3);
$_SERVER'PATH_INFO' = $_SERVER'REQUEST_URI';
include('index.php');
?>
然后到你的虚拟空间的后台设置一下你的错误提示设置:
接着到wordpress后台的固定连接设置你的自定义链接结构,我的博客链接结构是这样的“/%year%%monthnum%%day%%post_id%.html “,相应的参考值如下:
%year% 年份, %monthnum% 月份,%day% 日期,%hour% 小时,%minute% 分钟,%second% 秒,%post_id% 文章的ID,%category% 目录,%author% 作者
好了,到此为止Windows环境WordPress完美固定链接伪静态已经实现了,但是随后你会发现又出现了一下小的问题,比如说我之前写过的《WordPress:解决Windows环境TAG标签链接打不开》,有需要的朋友可以去看一下。
本文作者BlueFate,优化站点www.ytwy360.com亚太卫浴网。