IIS虚拟空间上如何使用伪静态去掉index.php?

前言:客户准备了一台windows2003+iis给我部署,关键由于iis不支持.htaccess,只得想办法搞定,写下来备忘


在Apache上很有用的.htaccess文件在IIS上就没有,要想实现类似的跳转功能可以使用ISAPI_Rewrite来代替,这是一个专门为IIS设置的工具,目的就是代替.htaccess实现很多功能,其中最常用的就是301转向和伪静态。准确来说它应该是代替Apache上的mod_Rewrite,还不能够完全代替.htaccess所以在语法和使用上有很多要注意的地方。


1. ISAPI_Rewrite的安装

首先到 http://www.helicontech.com/isapi_rewrite/download.html 下载一个ISAPI Rewrite的安装包,Lite免费版本ISAPI_Rewrite Lite (freeware)即可。

安装运行后(一路默认下一步即可),打开IIS管理工具,在网站单击右键选属性,就可以看到ISAPI_Rewrite已经被加入到了ISAPI筛选器中,如果没有则可以手动添加

按照安装的位置,找到 httpd.ini (新版本是http.conf)在此文件中输入Rewrite的规则即可。(默认位置C:Program Files/Helicon/ISAPI_Rewrite )


2. 去除index.php

打开httpd.ini(或者http.conf)

这里以httpd.conf为例

################
RewriteRule /(?:css|img)/(.*) $0 [I,L]
#上面一句的意思是 判断是不是请求css目录或者img目录的,如果是就 $0 我猜测这个$0代表原请求地址的意思。就是让你请求的地址
RewriteRule /robots\.txt $0 [I,L]
#这个也一样。

RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]

#这句就不用说了,把能不符合上两句的都rewrite到index.php去
###########################

大功告成~ 

分享至
2015-05-20 发布 ┊ 3416 人浏览 ┊ 1 人评论 ┊ 来源:原创 ┊ 收藏
回复
  • # 1woaicsj99 2015-07-29 04:04┆
    看不懂呢。
返回顶部