转换到VISTA+IIS7平台下开发后,首要的问题就是:如何让Zend Framework在IIS7下正常运行?众所周知,Zend Framework运行需要url rewrite方可实现,那么II7该如何处理配置呢?其实很简单,II7和Apache一样已经将功能组件模块化,实现一个功能只需安装对应模块文件后即可。
由于介绍Zend Framework在IIS7下面配置的文章网上几乎没有,我只能靠着着相关的参考资料和自己以往的经验来慢慢摸索,整个研究过程中有这么几点收获:
1.IIS7真的很强大!和Apache一样的功能模块化+配置数据文件化。
2.英文真的很重要!
以下是我的个人研究手记:
II7 相关模块文件和文档可以去 http://www.iis.net下载
url rewrite下载的页面在这里,点击DownLoad按钮后即可下载,安装过程也很“微软”——一路下一步就行了。
==================================================================
本文系原创文章,转载请注明文章源自思想之地 http://be-evil.org,作者:朦胧中的罪恶
==================================================================
下面是我的配置过程:
安装好模块后,我们即可在网站的配置中看到 URL rewrite Module的选项
点击放大:
然后我们就进入到了重写规则管理页面:
点击Add Rule后我们即可进入添加规则页面:
详细功能解释参见图片:(不知道为什么该页面在我的系统中显示异常)
设定完毕之后点击右上角的"应用"即可保存该规则设定
下面介绍Zend Framework的重写设定
Requested URL 设定为"matches the pattern"
Using 设定为:"Regular Expressions"
Ignore Case 大小写敏感可以根据自己项目情况设定
Partten 设定为:
^(([\w]+/?)+)(?!\.html|\.js|\.css|\.gif|\.png|.jpg|.ico|\.txt)$
Rewrtie URL 设定为:
index.php/{R:1}
按照以上的设定后Zend Framework即可正常在IIS7下运行
下面是II7 webcofing的内容,将文件放到网站目录下即可同样实现重写规则,这点和Apache的.htaccess文件集为相似
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ImportedRule1">
<match url="^(([\w]+/?)+)(?!\.html|\.js|\.css|\.gif|\.png|.jpg|.ico|\.txt)$" negate="false" ignoreCase="true" />
<action type="Rewrite" url="index.php/{R:1}" />
<conditions logicalGrouping="MatchAny">
</conditions>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>




