ISAPI_rewrite中文手册附多站点配置方法第1/4页
ISAPI_rewrite中文手册附多站点配置方法第1/4页
发布时间:2016-12-26 来源:查字典编辑
摘要:配置:在NT2000XP和2003平台上,在系统帐户下应该INETINFO程序应该与IIS5以共存模式过滤器运行。所以系统帐户应该给予对所有...

配置:

在NT2000XP和2003平台上,在系统帐户下应该INETINFO程序应该与IIS5以共存模式过滤器运行。所以系统帐户应该给予对所有的ISAPI-REWIRITEDLLS和所有的HTTPD。INI文件至少可读权限,我们也推荐对给予系统帐户对于所有包括HTTPD。INI文件的文件夹的可写权限,这将允许产生HTTP。PARSE。ERRORS文件,这些文件包含配置文件语法错误。对于PROXY模块也需要额外的权限,因为它将运行于连接池或HIGH-ISPLATED应用模式,IIS帐户共享池和HIGH-ISOLATION池应被给予对RWHELPERE。DLL的可读权限。缺省情况下IWAM-《计算机名》被用于所有的池,在相应的COM+应用设置中应借助COM+ADMINISTRATIONMMCSNAP-IN建立池帐户

配置文件格式化:

有两种形式的配置文件-GLOBAL(SERVER-LEVEL)和INDIVIDUAL(SITE-LEVAL)文件,GLOBAL配置文件应被命名为HTTPD.INI并出现在ISAPI-REWRITE安装目录中,文件的快捷方式通过开始菜单提供,INDIVIDUAL配置文件应名为HTTPD。INI并且能够出现在虚拟站点的物理根目录中,两种类型的格式化是相同的并是标准的WINDOWS。INI文件,所有的指令都应该放在这一部分并且所有指令都应该以分隔线放置,任何这一部分以外的文本都将被忽略

HTTPD.INI文件示例

Code:

[ISAPI_Rewrite]

#Thisisacomment

#300=5minutes

CacheClockRate300

RepeatLimit20

#Blockexternalaccesstothehttpd.iniandhttpd.parse.errorsfiles

RewriteRule/httpd(?:.ini|.parse.errors)/[F,I,O]

#BlockexternalaccesstotheHelperISAPIExtension

RewriteRule.*.isrwhlp/[F,I,O]

#Somecustomrules

RewriteCondHost:(.+)

RewriteCond指令

Syntax:(句法)RewriteCondTestVerbCondPattern[Flags]

这一指令定义一个条件规则,在RewriteRule或者RewriteHeader或RewriteProxy指令前预行RewriteCond指令,后面的规则只有它的,模式匹配URI的当前状态并且额外的条件也被应用才会被应用。

TestVerb

Specifiesverbthatwillbematchedagainstregularexpression.

特别定义的动词匹配规定的表达式

TestVerb=(URL|METHOD|VERSION|HTTPHeaderName:|%ServerVariable)where:

URL-returnsRequest-URIofclientrequestasdescribedinRFC2068(HTTP1.1);

返回客户端在RFC2068中描述的需求的Request-URI

METHOD-returnsHTTPmethodofclientrequest(OPTIONS,GET,HEAD,POST,PUT,DELETEorTRACE);

返回客户端需求(OPTIONS,GET,HEAD,POST,PUT,DELETEorTRACE)的HTTP方法

VERSION-returnsHTTPversion;

返回HTTP版本

HTTPHeaderName-returnsvalueofthespecifiedHTTPheader.HTTPHeaderNamecanbeanyvalidHTTPheadername.Headernamesshouldincludethetrailingcolon":".Ifspecifiedheaderdoesnotexistsinaclient'srequestTestVerbistreatedasemptystring.

返回特定义的HTTP头文件的值

Code:

HTTPHeaderName=

Accept:

Accept-Charset:

Accept-Encoding:

Accept-Language:

Authorization:

Cookie:

From:

Host:

If-Modified-Since:

If-Match:

If-None-Match:

If-Range:

If-Unmodified-Since:

Max-Forwards:

Proxy-Authorization:

Range:

Referer:

User-Agent:

Any-Custom-Header

得到更多的关于HTTP头文件的和他们的值的信息参考RFC2068

ServerVariable返回特定义的服务器变量的值。例如服务器端口,全部服务器变量列表应在IIS文档中建立,变量名应用%符预定;

CondPattern

TheregularexpressiontomatchTestVerb

规则表达式匹配TestVerb

Code:

[Flags]

Flagsisacomma-separatedlistofthefollowingflags:

O(nOrmalize)

Normalizesstringbeforeprocessing.NormalizationincludesremovingofanURL-encoding,illegalcharacters,etc.ThisflagisusefulwithURLsandURL-encodedheaders

RewriteRule指令

Syntax:RewriteRulePatternFormatString[Flags]

这个指令可以不止发生一次,每个指令定义一个单独的重写规则,这些规则的定义命令很重要,因为这个命令在应用运行时规则是有用途的

I(ignorecase)

不管大小写强行指定字符匹配,这个FLAG影响RewriteRule指令和相应的RewriteCond指令

F(Forbidden)

对客户端做反应,停止REWRITING进程并且发送403错误,注意在这种情况下FORMATSTRING是无用的并可以设置为任何非空字符串。

L(lastrule)

不应用任何重写规则在此停止重写进程,使用这个FLAG以阻止当前被重写的URI被后面的规则再次重写

N(Nextiteration)

强制REWRITINGENGINE调整规则目标并且从头重启规则检查(所有修改将保存),重启次数由RepeatLimit指定的值限制,如果这个数值超过NFLAG将被忽略

NS(Nextiterationofthesamerule)

以N标记工作不从相同的规则重启规则规则进程(例如强制重复规则应用),通过RepeatLimit指令指定一个反复实行某一规则的最大数目,

P(forceproxy)

强制目的URI在内部强制为代理需求并且立即通过ISAPI扩展应付代理需求,必须确认代理字符串是一个有效的URI包括协议主机等等否则代理将返回错误

R(explicitredirect)

强制服务器对客户端发出重定向指示即时应答,提供目的URI的新地址,重定向规则经常是最后规则

RP(permanentredirect)

几乎和[R]标记相同但是发布301HTTP状态而不是302HTTP状态代码

U(UnmangleLog)

当URI是源需求而不是重写需求时记载URI

O(nOrmalize)

在实行之前标准化字符串。标准化包括URL-ENCODING,不合法的字符的再移动等,这个标记对于URLS和URLS-ENDODED头是有用的

CL(CaseLower)

小写

CU(CaseUpper)

大写

RewriteHeaderdirective

Code:

Syntax:RewriteHeaderHeaderNamePatternFormatString[Flags]

这个指令是RewriteRule的更概括化变种,它不仅重写URL的客户端需求部分,而且重写HTTP头,这个指令不仅用于重写。生成,删除任何HTTP头,甚至改变客户端请求的方法

HeaderName

指定将被重写的客户头,可取的值与RewriteCond指令中TestVerb参数相同

Pattern

限定规则表达式以匹配Request-URI,

FormatString

限定将生成新的URI的FormatString

[Flags]

是一个下列FLAGS的命令分隔列表

I(ignorecase)

不管大小写强行指定字符匹配,这个FLAG影响RewriteRule指令和相应的RewriteCond指令

F(Forbidden)

对客户端做反应,停止REWRITING进程并且发送403错误,注意在这种情况下FORMATSTRING是无用的并可以设置为任何非空字符串。

L(lastrule)

不应用任何重写规则在此停止重写进程,使用这个FLAG以阻止当前被重写的URI被后面的规则再次重写

N(Nextiteration)

强制REWRITINGENGINE调整规则目标并且从头重启规则检查(所有修改将保存),重启次数由RepeatLimit指定的值限制,如果这个数值超过NFLAG将被忽略

NS(Nextiterationofthesamerule)

以N标记工作不从相同的规则重启规则规则进程(例如强制重复规则应用),通过RepeatLimit指令指定一个反复实行某一规则的最大数目,

R(explicitredirect)

强制服务器对客户端发出重定向指示即时应答,提供目的URI的新地址,重定向规则经常是最后规则

RP(permanentredirect)

几乎和[R]标记相同但是发布301HTTP状态而不是302HTTP状态代码

U(UnmangleLog)

当URI是源需求而不是重写需求时记载URI

O(nOrmalize)

在实行之前标准化字符串。标准化包括URL-ENCODING,不合法的字符的再移动等,这个标记对于URLS和URLS-ENDODED头是有用的

CL(CaseLower)

小写

CU(CaseUpper)

大写

要重移动头,FORMATSTRING模式应该生成一个空字符串,例如这一规则将从客户请求中重移代理信息

RewriteHeaderUser-Agent:.*$0

并且这一规则将把OLD-URLHEADER加入请求中。

RewriteCondURL(.*)RewriteHeaderOld-URL:^$$1

最后一个例子将通过改变请求方法定向所有的WEBDAV请求到/WEBDAV。ASP

Code:

RewriteCondMETHODOPTIONS

RewriteRule(.*)/webdav.asp?$1

RewriteHeaderMETHODOPTIONSGET

RewriteProxydirective

Syntax:RewriteProxyPatternFormatString[Flags]

当前1/4页1234下一页阅读全文

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新应用技巧学习
热门应用技巧学习
网页设计子分类