Windows 2008 R2 + IIS 7.5 Rewrite组件重写规则兼容方法
随着越来越多云主机或者VPS普及Windows 2008 或者Windows 2008 R2,IIS 7.0或IIS 7.5的时代就来到了。本文以Windows 2008 R2为例,讲述如何把Windows 2003下IIS 6.0的Rewrite组件完美迁移到Windows 2008 R2当中。
Windows 2008 R2默认只有64位的,但是内置了支持32位的功能,就是说几乎所有在32位下能正常运行的软件都能正常运行在Windows 2008 R2当中,故不必担心PHP 5.2.17这个版本支持或不支持了。另外,有点需要注意的,Windows 2008 R2下,IIS版本是7.5,添加是在服务器管理面板中的“角色”,非“功能”哦,这点在刚接触2008 R2会有找不到……
IIS7.0开始就变成模块化了,需要什么就安装什么,当然也包括ASP支持,咱们用来运行PHP就把CGI也勾上。到时安装PHP的时候,就不用安装FastCGI了,因为已经内置了,这是跟Windows 2003不同的。
直奔主题吧,我们在Windows 2003下使用Rewrite组件,一般都有对应的httpd.ini规则包,在Apache下,则对应有.htaccess规则包。网上有不少方法让我们使用IIS 7.5的ULR Rewrite模块来进行导入原来的规则,导入的规则会在网站根目录生成web.config文件,里面保存的是根据导入生成的新规则,由于种种原因,导入的规则语法未必会100%能让IIS 7.5这个重写模块识别,导致导入的规则运行时候发生各种提示,包括无法生效,HTTP 500内部错误等等。
那有没有办法直接使用原来Windows 2003的伪静态规则包呢,答案是肯定的,Windows 2008 R2做的兼容性更高,没有Windows 2003莫名其妙的向上向下箭头,权限是一次性配置到位的。
在Windows 2008 R2的IIS 7.5的站点面板中,有个“ISAPI筛选器”模块,这个就是Windows 2003加载Rewrite组件的地方,接下来,你应该明白怎样加载了吧,同样道理,在这里把Rewrite.dll作为运行文件,加载到ISAPI筛选器,拿KingCMS地方门户v2.2举例,ISAPI筛选器Rewrite.dll会自动读取旁边的httpd.ini规则包。
一般而言,没实操过的教程就到此结束了,但是在实际操作当中,这样加载了Rewrite组件,还是无法生效。其实,原因也很明确,因为Windows 2008 R2是64位的,我们直接用在Windows 2003的Rewrite组件是32位的,所以要找到IIS 7.5加载的Rewrite组件如何在设置为32位兼容模式,经过狂点式搜查,终于在应用池那里找到了设置:
把启用32位应用程序设置为 True,然后再试试看。伪静态是不是生效了。
关键词:Windows 2008,IIS,Rewrite
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1