我看论坛有人PM我需要这个,之前我在IIS下也花了一番功能弄,最后才找到这个解决方法。发出来给有需要的人,这样可以节省大家一些时间。。
前言:不得言尝试着总结一下IIS下Wordpress博客去掉永久链接index.php 的方法,找遍了几乎所有的官方资料,针对去掉index.php的方法只发现了一种。那就是利用自定义404错误重定向,实现重定向的方式去掉index.php。 可喜的是,当使用ISAPI_Rewrite,并创建好ISAPI_Rewrite规则后,wordpress的固定链接就能去掉index.php了。那么这样算一种办法把。ISAPI_Rewrite和apache下的mod_rewrite同理。 一、利用自定义404重定向去掉index.php解读:办法比较暴力。由于IIS下固定链接无法去掉 Index.php,于是有人想到制造404错误并截取错误的URL,进行URL重写匹配的办法,使请求URL获得正确解析。 通俗来讲就是说,把错误的链接(没有index.php)利用404.php获取,通过加工变成正确的URL重新送给Wordpress。去掉index.php的步骤如下: - 下载404.rar文件,保存到博客根目录;
- 打开IIS管理工具-博客属性-自定义错误-404;404.2;404.3;
- 类型选择URL,地址输入:/404.php 前面的“/”务必保留;
登录wordpress后台,在固定链接/永久链接(Permalinks)设置项目- 自定义结构里去掉index.php。是不是成功了? 我的wordpress固定链接自定义结构:/%category%/%postname%/ 虚拟主机用户怎么办?甭怕,绝大多数虚拟主机都支持自定义 404错误。实在不成,一个电话空间商就能解决。 这里有个较早的404重定向办法,仅404错误页面有所不同,或许能让您思维发散一下:让WordPress 固定链接个性化的第二部分-WordPress的固定链接高级进阶。 二、利用ISAPI_Rewrite去掉index.phpwordpress能完美的工作在apache下,因为它有mod_rewrite模块。但在IIS下没有这玩意,我们只好使用第三方软件ISAPI_Rewrite,来解决这个问题。事实上ISAPI_Rewrite是收费的,但免费版提供的功能可以完美支持wordpress,因此我们不必担心。 我的处理办法: 下载并安装ISAPI_Rewrite3免费版下载ISAPI_Rewrite3_0086_Lite,ISAPI_Rewrite3_0086_Lite_x64,安装在IIS服务器上。前者是32位,后者是64位,收费版在这里Download ISAPI_Rewrite 3 ISAPI_Rewrite 3 我安装在了D盘Server文件夹
为了统一管理,我一般都把服务软件放在D:\Server文件夹,因此我把ISAPI_Rewrite 3安装在这里。收费版本和免费版本的区别,据说配置文件httpd.conf放的位置不同。免费版在安装目录里,收费版在网站根目录下,虚拟主机每个网站下都会有。 网站属性多了ISAPI_Rewrite标签和ISAPI筛选器状态
2、创建ISAPI_Rewrite规则复制下面代码到D:\Server\ISAPI_Rewrite3\httpd.conf文件里保存;或者在IIS属性标签ISAPI_Rewrite里“DEIT”保存。 RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1 [NC,L]
登录wordpress后台,在固定链接/永久链接(Permalinks)设置项目- 自定义结构里去掉index.php。是不是成功了? 我的wordpress固定链接自定义结构:/%category%/%postname%/ 创建ISAPI_Rewrite规则 去掉永久链接的index.php就在眼前
什么?你的ISAPI_Rewrite在IIS的ISAPI筛选器里状态未知?好吧,浏览器里访问网站下的任意链接,返回看看。ISAPI_Rewrite是需要一次访问才能生效的。如果安装上就生效了,那是别人“不小心”帮你完成了上面工作。
引用地址:http://www.budeyan.com/jishu/wor ... nt-page-1/#comments
|