在网上找了很多资料也没有解决Windows环境下WordPress伪静态的问题,今天早上幸运终于搞定啦,大概有两种方法
1. 为什么要实现固定连接伪静态呢?
WordPress有这样一句话:“WordPress允许您更改默认的链接形式,以此提高 URL 的可读性和对搜索引擎的友好程度”。默认的那个问号后面带参数的链接不仅让人看着不爽啊,搜索引擎很多时候也不喜欢,其实做SEO的都懂的。
大家可以看一下上面的这个图,其实除了默认的那个链接结构是个动态的带着问号,其他三个“日期和文章名”,“月份和文章名”,“数字”的链接结构都是属于伪静态的,如果你的Windows主机本身就支持伪静态,那这三种结构是支持的。但是域名后面都带有一个index.php,这个不仅会是网址的层级变深,而且实在让很多人看着不舒服,对于追求完美的WP管理员之家来说当然也是不喜欢啦。我最后选择的是自定义结构,实现后的效果是这样的http://www.wpadmin.cn/blog/20110819430.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的文件,并写入以下代码。
- <?php
- $qs = $_SERVER[‘QUERY_STRING’];
- $_SERVER[‘REQUEST_URI’] = substr($qs, strpos($qs,’:80′)+3);
- $_SERVER[‘PATH_INFO’] = $_SERVER[‘REQUEST_URI’];
- include(‘index.php’);
- ?>
然后到你的虚拟空间的后台设置一下你的错误提示设置:
接着到wordpress后台的固定连接设置你的自定义链接结构,我的WP管理员之家博客链接结构是这样的“/%year%%monthnum%%day%%post_id%.html “,相应的参考值如下:
%year% 年份, %monthnum% 月份,%day% 日期,%hour% 小时,%minute% 分钟,%second% 秒,%post_id% 文章的ID,%category% 目录,%author% 作者
哈哈。因为这事我那天晚上搞了一个晚上都没有 解决,今天终于解决这个头疼在问题。打开在时候一下子给我很大的视觉冲击。总之,功夫不负有心人,只要你用心,任何事情都不是问题滴!