快捷搜索:  

ISAPI_Rewrite 3.1 教程中文版

第一章:软件介绍
ISAPI_Rewrite 是一款适用于IIS的功能强大的基于正则表达式的URL处理模块。它兼容Apache的mod_rewrite的语法,从而使仅仅复制.htaccess文件就把配置从appach移植到IIS中或者从IIS移值到appach中变成可能。请参阅3.2兼容性图表这一节。
ISAPI_Rewrite最重要的功能:
ISAPI_Rewrite提供了和Apach mod_rewrite相同的句法和行为,使仅仅拷贝.htaccess文件就完成配置移植成为功能。(要想阅读更多关于与mod_rewrite的兼容性,请参阅3.2兼容性图表这一节。)
正则表达式支持灵活而强大的配置。
极速而且容易升级的纯C++代码。
真正的分布式配置:实时监控服务器全局级别、虚拟主机(网站)级别、目录级别的.htaccess文件。
隔离性:用户级配置只影响本地用户环境,从而使ISAPI_Rewrite成为Web主机提供商的理想解决方案。
重要的应用示例:
搜索引擎优化。
一台Web服务器的代理内容经过另一台web服务器。
防止内容被吸血(盗链)。
阻断特定主机、反向链接或者烦人的搜索机器人。
内容商议:向不同的语言用户或者不同的浏览器用户提供不同的文件。示例
为群集式服务器架构模拟负载均衡。
定价资料
45天的试用期
单机版99美元
ISAPI_Rewrite精简版是免费的。在这里可以看到受限的细节说明。
大宗采购可议折扣。

2.1系统要求
ISAPI_Rewrite可以被安装在下列操作系统中:
Windows 2000 with IIS 5
Windows XP with IIS 5.1
Windows Server 2003 with IIS 6.0
Windows Vista with IIS 7.0
Windows Server 2008 with IIS 7.0
在安装ISAPI_Rewrite之前,操作系统中必须先安装IIS。
32位和64位的Windows版本都是支持的,但是你必须下载32位版和64位版两种不同的安装包。Windows Installer 2.0必须运行安装程序。你可以从微软的网站上下载到最新版本的Windows Installer。
在Windows Vista和Windows Server 2008上安装ISAPI_Rewrite,还必须先安装下面两个模块(默认情况下这两个模块是不安装的)
ISAPI过滤器
ISAPI 扩展

2.2安装程序
在运行安装包之前请先阅读系统要求部分。下载并安装某个版本的ISAPI_Rewrite.msi,依照安装向导的说明操作。安装过程是自动的,并有自我描述。ISAPI_Rewrite在自动安装过程中必须重启IIS。下列服务必须被重启:IISADMIN、W3SVC。不需要手工把任何ISAPI筛选器或者扩展加入到网站或者全局列表中。它能够在安装和配置过程中自动完成。
命令行安装
ISAPI_Rewrite也能够通过命令行进行后台安装。请使用以下命令行语法来安装:
复制代码 代码如下:msiexec /i ISAPI_Rewrite3.msi /qn AcceptEULA=Yes REGISTRATIONCODE=Code
REGISTRATIONNAME=Name

用命令行来后台反安装ISAPI_Rewrite请使用下面的语法:
复制代码 代码如下:msiexec /x ISAPI_Rewrite3.msi /qn KEEPUSERFILES=Yes
2.3手工安装
要手工安装ISAPI_Rewrite的话,你必须下载不同的手工安装包包含所有必须的文件。ISAPI_Rewrite精简版不支持手工安装。你可以安装全部功能或者仅仅安装它们中的一部分。
手工安装包包含下列文件:
ISAPI_Rewrite.dll - 这是ISAPI筛选器本身。
ISAPI_RewriteProxy.dll - 这是为代理操作的ISAPI扩展模块必不可少的。
license.rtf - EULA的产品许可证。
ISAPI_Rewrite.chm - .文档文件。
httpd.conf - 全局配置文件示例。
安装ISAPI_Rewrite,首先你必须在你在IIS系统中注册ISAPI_Rewrite.dll作为ISAPI筛选器。按默认ISAPI_Rewrite.dll文件是用来作为全局ISAPI筛选器的。而且它还能够被安装到某个特定的网站里,你需要记住在同一时间段里只有一个ISAPI_Rewrite.dll实例能够加载到一个IIS工作进程里,这意味着如果你决定把ISAPI_Rewrite的ISAPI筛选器单独地安装到每个站点里的话,你必须把这些站点切换高隔离模式,从而为这些网站产生独立的工作进程。如果你需要在每个站点上分别安装ISAPI_Rewrite,我们通常会建议改为在整个IIS上全局地安装它。
在Window 2000,Window XP 和Windows Server 2003中注册ISAPI 筛选器,无论是整个IIS服务器要用它还是个别WEB网站要用它,都要用IIS 的MMC管理单元来把ISAPI_Rewrite.dll添到ISAPI筛选器列表。在Windows Vista和Windows Server 2008中首先你需要安装可选IIS组件:万维网服务、应用程序开发功能、ISAPI筛选器。
如果你需要代理服务器功能,你还需要将ISAPI_RewriteProxy.dll注册为ISAPI扩展来侍服文件扩展名“*. rwhlp”。在不同的IIS版本中要求不同的操作。请参阅你管理的IIS版本的文档来了解如何注册一个新的ISAPI扩展并把它映射到IIS系统的文件扩展名上。在Windows Vista和windows server 2008首先必须安装可选的IIS组件:万组网服务、应用程序开发功能、ISAPI筛选器。使用短路径名(8.3模式)作为ISAPI_RewriteProxy.dll的模块路径,如果路径里有一个空格字符,IIS载入这个模块时将失败。
把httpd.conf文件放在ISAPI_Rewrite.dll文件的同一目录下并编辑它。
把下列两行内容放到httpd.conf文件中以注册ISAPI_Rewrite 产品:
RegistrationName=Your registration name
RegistrationCode=REG-CODE-PROVIDED-FROM-HELICON依照“运行ISAPI_Rewrite的权限需求”这一部分的说明来检查文件系统权限。
2.4反安装
反安装程序会删除所有安装程序所生成的文件、从管理元库中注销筛选器,并删除所有由安装程序所添加的其它管理元库变化。如果用户决定在反安装过程中保留用户文件的话,下列用户数据文件在反安装后会被留下来。
文件名 说明
Program Files/Helicon/ISAPI_Rewrite/httpd.conf 用户规则的主配置文件
Program Files/Helicon/ISAPI_Rewrite/error.log 包含错误日志的文件
Program Files/Helicon/ISAPI_Rewrite/rewrite.log 包含重写日志的文件
.htaccess (various folders) 用户创建的含有规则的配置文件
“删除用户创建的文件”的选项在将反安装过程中提供给用户。如果启用这个选项则卸载程序也将删除位于Program Files文件夹里用户创建的文件。 .htaccess文件不会被删除。
要用命令行后台卸载ISAPI_Rewrite,请使用下面的语法:
复制代码 代码如下:
msiexec /x ISAPI_Rewrite3.msi /qn KEEPUSERFILES=Yes

2.5运行ISAPI_Rewrite所需的权限
在一个干净的默认Windows系统上自动安装ISAPI_Rewrite不要求任何权限调整。但是一些其它产品比如说Plesk、IIS锁定工具的安装,等等,可能收紧服务器的安全性,并妨碍ISAPI_Rewrite的正常运行。下面是ISAPI_Rewrite的权限需求的列表单子:
在Windows 2000、Windows XP和Windows 2003的IIS5兼容模式下,筛选器运行在System帐户下的inetinfo.exe进程中。那个system帐户至少得被授予放置ISAPI_Rewrite安装文件的那个文件夹的“读取”和“目录浏览”的权限。我们还建议给予system帐号对这个文件夹的一般修改权。这将允许生成一些包含解析或者其它错误的文件。system帐号还必须在任何包含了.htaccess文件的网站文件夹里同样被授予这些权限,否则ISAPI_Rewrite将不能加载并监视它。
请稍留意ISAPI_Rewrite安装目录上的任何一点拒绝权限设置,因为在Windows 操作系统中,拒绝权限优先于任何允许权限记录。
在Windows 2003的天然IIS模式(WPI模式)以及Windows Server 2008中,无论是筛选器还是代理服务都运行在每个网站相应的运行程序池的w3p.exe工作进程中,每个应用程序池都可以使用它自己的定制来配置,这可能使权限设置成了一种复杂的工作。然而,在一个正确的IIS配置中,每个使用中的定制必须是IIS_WPG组的一个成员。因此,IIS_WPG组可以被用来代替System帐号去分配前面所写的权限需求。
在Windows Vista 中权限配置是和Windows 2003的配置差不多的,只是它没有IIW_WPG组。所以,所有的WPI帐号(一般Network Service是它的惟一帐号)都必须授予上述必需权限。
此外,为了让代理服务功能能工作,你必须在网站属性或者运行代理服务的web应用程序的属性中给予一个“纯脚本”的执行权限。
2.6MSI的自定义行为自定义行为


自定义行为 说明
WiseAltStartup
自动智能启动
为运行在延时模式中的自定义行为保存属性的当前状态。
使用一个可执行文件(dll)
发生在:安装、反安装。
WiseCleanup
智能清理
这个行为被调用来清理上一个自定义行为所遗留下的临时文件
使用一个可执行文件(dll)
发生在:安装、反安装。
WiseStartup
智能启动
这个行为使调用一个.dll文件或者提取必要Wisescript.exe文件和.dll文件的行为可以传递参数。
使用一个可执行文件(dll)
发生在: 安装、反安装
WiseUpgradeCheck
智能可选择地升级
这个行为被调用来解决当Windows安装程序运行时不检测应用程序的早期版本的问题。
使用一个可执行文件(dll)
发生在:安装。
WiseUpgradeCheckEx
智能预选升级
添加这个行为用来解决当Windows安装程序运行时不检测应用程序的早期版本的问题。
使用一个可执行文件(dll)
发生在:安装。
WiseGetIISVersion
智能获得IIS版本
对主要的IIS版本设置属性(IISVERSION).
使用一个可执行文件(dll)
发生在:安装。
RegisterFilterInMetabase
在管理元库中注册筛选器
这个行为添加一个命名为ISAPI_Rewrite3的全局ISAPI筛选器到IIS管理元库里
IIS5, IIS6 管理元库: IIS:/LM/W3SVC/Filters/ add key ISAPI_Rewrite3
IIS:/LM/W3SVC/Filters/FilterLoadOrder append "ISAPI_Rewrite3"
使用一个可执行文件(dll)
发生在:安装。

RemoveFilterFromMetabase
从管理元库中删除筛选器
这个行为从IIS管理元库里移除了名为ISAPI_Rewrite3的全局ISAPI筛选器。
IIS5, IIS6 管理元库: IIS://localhost/W3SVC/LM/W3SVC/Filters/ delete key ISAPI_Rewrite3
IIS:/LM/W3SVC/Filters/FilterLoadOrder remove"ISAPI_Rewrite3"
使用一个可执行文件(dll)
发生在:反安装、回滚。
AddApplicationExtension
添加应用程序扩展
只用于Windows 2003机器添加ISAPI_RewriteProxy.dll到ISAPI扩展中,并使Web服务器扩展名列表中的这个ISAPI扩展名可用。
IIS6管理元库: IIS:/LM/W3SVC/
adds entry to the在管理元库属性 WebSvcExtRestrictionList中增加metabase property "ISAPI_Rewrite3 proxy"条目;
在管理元库属性 ApplicationDependencies 增加"ISAPI_Rewrite3 proxy;ISAPI_Rewrite3"条目;
使用一个可执行文件(dll)
发生在:安装。
RemoveApplicationExtension
删除应用程序扩展
只用于Windows 2003从ISAPI扩展中删除ISAPI_RewriteProxy.dll,并从web服务器扩展名列表中删除这个ISAPI扩展名。
IIS6管理元库: IIS:/LM/W3SVC/
1.从管理元库属性 WebSvcExtRestrictionList 中删除"ISAPI_Rewrite3 proxy"条目;
2.从管理元库属性 ApplicationDependencies中删除"ISAPI_Rewrite3 proxy;ISAPI_Rewrite3"条目;
使用一个可执行文件(dll)
发生在:反安装、回滚。
RegisterExtensionInScriptMap
在脚本映射中注册扩展
在IIS管理员库中将ISAPI_RewriteProxy.dl注册为ISAPI扩展来处理*.rwhlp文件扩展名
IIS5,IIS6管理元库: IIS://LM/W3SVC/
使用一个可执行文件(dll)
发生在:安装。
RemoveExtensionFromScriptMap
从脚本映射中删除扩展
从IIS管理元库中移除作为ISAPI扩展、用于处理*.rwhlp文件扩展名的ISAPI_Rewrite.dll的注册信息
IIS5, IIS6管理元库: IIS://LM/W3SVC/
使用一个可执行文件(dll)
发生在:反安装、回滚。
GetServisesStatus
获得服务状态
保存IISADMIN、W2WC、NNTP、SMTP 和FTP 服务的当前状态
创建msi属性: [SERVICES_STATUS]
使用一个可执行文件(dll)
发生在: 安装、反安装。
StartServicesEx
按预设开启服务
根据状态预设来启动ISADMIN、W2WC、NNTP、 SMTP 和 FTP 服务
使用msi 属性: [SERVICES_STATUS]
使用一个可执行文件(dll)
发生在: 安装、反安装。

SaveProductID
保存产品ID
如果要注册产品的话,保存REGISTRATIONNAME和REGISTRATIONCODE的属性值
使用msi 属性: [REGISTRATIONNAME] , [REGISTRATIONCODE];
使用文件: [INSTALLDIR]\ISAPI_Rewrite3\httpd.conf
使用一个可执行文件(dll)
发生在: 安装。
Check32bitMode
检测32位模式
在64位系统中检查32位IIS兼容模式是否可用,从而安装正确的ISAPI筛选器版本。IIS6, IIS7
使用管理元库路径: IIS://LM/W3SVC/AppPools property Enable32bitAppOnWin64;
使用msi 属性:[ENABLE32BITAPPONWIN64]
检查一个32位的应用程序是否能运行在一台安装了64位版本的windows的电脑上。
使用javascript脚本
发生在: 安装。
CheckIISModules
检测IIS模块
在IIS7的机器上检查是否需要安装IsapiFilterModule和IsapiModule模块
IIS7 管理元库路径:
<system.webServer>
<globalModules>
<add name="IsapiModule" image="%windir%\System32\inetsrv\isapi.dll" />
<add name="IsapiFilterModule" image="%windir%\System32\inetsrv\filter.dll" />
</globalModules>
</system.webServer>
使用javascript脚本
发生在: 安装。
AddGlobalIsapiFilter
添加全局ISAPI筛选器
只用于IIS7的机器。这个行为会在IIS管理元库里添加一个命名为ISAPI_Rewrite3的全局ISAPI_Rewrite筛选器
IIS7的管理元库路径:
<configuration>
<system.webServer>
<isapiFilters>
<filters>
<filter name="ISAPI_Rewrite3" path="C:\Program Files\Helicon\ISAPI_Rewrite3\ISAPI_Rewrite.dll" enabled="true" enableCache="false">
</filter>
</filters>
</isapiFilters>
</system.webServer>
</configuration>
使用JavaScript脚本
发生在:安装。
DeleteGlobalIsapiFilter
删除全局ISAPI过滤器
只用于IIS7的机器,这个行为会从IIS管理元库中删除名为ISAPI_Rewrite3的全局ISAPI筛选器。
IIS7的管理元库路径:
<configuration>
<system.webServer>
<isapiFilters>
<filters>
<filter name="ISAPI_Rewrite3" path="C:\Program Files\Helicon\ISAPI_Rewrite3\ISAPI_Rewrite.dll" enabled="true" enableCache="false" >
</filter>
</filters>
</isapiFilters>
</system.webServer>
</configuration>
使用JavaScript脚本
发生在:反安装、回滚。
顶(0)
踩(1)

您可能还会对下面的文章感兴趣:

最新评论

  • ^
AddIsapiCgiRestriction
添加ISAPI CGI约束
Only for IIS7 machines register ISAPI_RewriteProxy.dll as ISAPI extension in IIS metabase.
只用于IIS7的机器,在IIS管理元库中将ISAPI_RewriteProxy.dl为ISAPI扩展
IIS7管理元库路径:
<configuration>
<system.webServer>
<security>
<isapiCgiRestriction>
<add path="C:\Program Files\Helicon\ISAPI_Rewrite3\ISAPI_RewriteProxy.dll" allowed="true" description="Helicon Proxy" />
</isapiCgiRestriction>
</security>
</system.webServer>
</configuration>
使用JavaScript脚本
发生在:安装。
DeleteIsapiCgiRestriction
删除ISAPI CGI约束
只用于IIS7的机器,从IIS管理元库中删除用作ISAPI扩展的ISAPI_RewriteProxy.dll。
IIS7 管理元库路径:
<configuration>
<system.webServer>
<security>
<isapiCgiRestriction>
<add path="C:\Program Files\Helicon\ISAPI_Rewrite3\ISAPI_RewriteProxy.dll" allowed="true" description="Helicon Proxy" />
</isapiCgiRestriction>
</security>
使用JavaScript脚本
发生在:反安装、回滚。
AddScriptMap
添加脚本映射
只用于IIS7的机器,在IIS管理元库中将ISAPI_RewriteProxy.dll注册为ISAPI扩展用于处理*.rwhlp文件扩展名。
IIS7管理元库路径:
<configuration>
<system.webServer>
<handlers>
<add name="Helicon Proxy" path="*.rwhlp" verb="*" modules="IsapiModule" scriptProcessor="C:\Program
Files\Helicon\ISAPI_Rewrite3\ISAPI_RewriteProxy.dll" resourceType="Unspecified"/>
</handlers>
</system.webServer>
</configuration>
使用JavaScript脚本
发生在:安装。
DeleteScriptMap
删除脚本映射
只用于IIS7的机器,从IIS管理元库里去除用作ISAPI扩展以处理*.rwhlp文件扩展名的ISAPI_RewriteProxy.dll的注册
IIS7管理元库路径:
<configuration>
<system.webServer>
<handlers>
<add name="Helicon Proxy" path="*.rwhlp" verb="*" modules="IsapiModule" scriptProcessor="C:\Program
Files\Helicon\ISAPI_Rewrite3\ISAPI_RewriteProxy.dll" resourceType="Unspecified"/>
</handlers>
</system.webServer>
</configuration>
使用JavaScript脚本
发生在:反安装、回滚。