ISAPI_rewrite中文手册附多站点配置方法第1/4页

配置:

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

配置文件格式化:

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

HTTPD.INI文件示例


Code:
[ISAPI_Rewrite]

# This is a comment

# 300 = 5 minutes
CacheClockRate 300
RepeatLimit 20

# Block external access to the httpd.ini and httpd.parse.errors files
RewriteRule /httpd(?:\.ini|\.parse\.errors) / [F,I,O]

# Block external access to the Helper ISAPI Extension
RewriteRule .*\.isrwhlp / [F,I,O]

# Some custom rules
RewriteCond Host: (.+)

RewriteCond 指令

Syntax:(句法) RewriteCond TestVerb CondPattern [Flags]

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

TestVerb

Specifies verb that will be matched against regular expression.
特别定义的动词匹配规定的表达式

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

URL - returns Request-URI of client request as described in RFC 2068 (HTTP 1.1); 
返回客户端在RFC2068中描述的需求的Request-URI
METHOD - returns HTTP method of client request (OPTIONS, GET, HEAD, POST, PUT, DELETE or TRACE); 
返回客户端需求(OPTIONS, GET, HEAD, POST, PUT, DELETE or TRACE)的HTTP方法
VERSION - returns HTTP version; 
返回HTTP版本
HTTPHeaderName - returns value of the specified HTTP header. HTTPHeaderName can be any valid HTTP header name. Header names should include the trailing colon ":". If specified header does not exists in a client's request TestVerb is treated as empty string. 
返回特定义的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 
The regular expression to match TestVerb
规则表达式匹配TestVerb

Code:
[Flags]
Flags is a comma-separated list of the following flags:

O (nOrmalize)

Normalizes string before processing. Normalization includes removing of an URL-encoding, illegal characters, etc. This flag is useful with URLs and URL-encoded headers

RewriteRule 指令

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

I (ignore case)

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

F (Forbidden)

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

L (last rule)

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

N (Next iteration)

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

NS (Next iteration of the same rule)

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

P (force proxy)

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

R (explicit redirect)

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

RP (permanent redirect)

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

U (Unmangle Log)

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

O (nOrmalize)

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

CL (Case Lower)

小写

CU (Case Upper)

大写

RewriteHeader directive

Code:
Syntax: RewriteHeader HeaderName Pattern FormatString [Flags]

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

HeaderName

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

Pattern
限定规则表达式以匹配Request-URI,
FormatString 
限定将生成新的URI的FormatString 
[Flags]
是一个下列FLAGS的命令分隔列表

I (ignore case)
不管大小写强行指定字符匹配,这个FLAG影响RewriteRule指令和相应的RewriteCond 指令
F (Forbidden)
对客户端做反应,停止REWRITING进程并且发送403错误,注意在这种情况下FORMATSTRING 是无用的并可以设置为任何非空字符串。
L (last rule)
不应用任何重写规则在此停止重写进程,使用这个FLAG以阻止当前被重写的URI被后面的规则再次重写
N (Next iteration)
强制REWRITINGENGINE调整规则目标并且从头重启规则检查(所有修改将保存),重启次数由RepeatLimit指定的值限制,如果这个数值超过N FLAG将被忽略

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

R (explicit redirect)
强制服务器对客户端发出重定向指示即时应答,提供目的URI的新地址,重定向规则经常是最后规则
RP (permanent redirect)
几乎和[R]标记相同但是发布301HTTP状态而不是302HTTP状态代码
U (Unmangle Log)
当URI是源需求而不是重写需求时记载URI
O (nOrmalize)
在实行之前标准化字符串。标准化包括URL-ENCODING,不合法的字符的再移动等,这个标记对于URLS和URLS-ENDODED头是有用的 
CL (Case Lower) 
小写
CU (Case Upper) 
大写

要重移动头,FORMAT STRING模式应该生成一个空字符串,例如这一规则将从客户请求中重移代理信息
RewriteHeader User-Agent: .* $0
并且这一规则将把OLD-URL HEADER 加入请求中。
RewriteCond URL (.*)RewriteHeader Old-URL: ^$ $1
最后一个例子将通过改变请求方法定向所有的WEBDAV请求到/WEBDAV。ASP

Code:
RewriteCond METHOD OPTIONS
RewriteRule (.*) /webdav.asp?$1
RewriteHeader METHOD OPTIONS GET
RewriteProxy directive
Syntax: RewriteProxy Pattern FormatString [Flags]

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

(0)

相关推荐

  • ISAPI_rewrite中文手册附多站点配置方法第1/4页

    配置: 在NT 2000 XP和2003平台上,在系统帐户下应该INETINFO程序应该与IIS5以共存模式过滤器运行.所以系统帐户应该给予对所有的ISAPI-REWIRITE DLLS 和所有的HTTPD.INI文件至少可读权限,我们也推荐对给予系统帐户对于所有包括HTTPD.INI文件的文件夹的可写权限,这将允许产生HTTP.PARSE.ERRORS文件,这些文件包含配置文件语法错误.对于PROXY模块也需要额外的权限,因为它将运行于连接池或HIGH-ISPLATED应用模式,IIS帐户共享

  • Yii框架多语言站点配置方法分析【中文/英文切换站点】

    本文实例讲述了Yii框架多语言站点配置方法.分享给大家供大家参考,具体如下: 这里假设我们要建立 中文/英文 切换的站点 1. 设置全局默认的语言 文件添加代码:protected/config/main.php 'language' => 'zh_cn', 2. 控制器根据用户选择动态切换语言 一般来说,我们所有的控制器都是继承于 protected/components/Controller.php 这个类.因此,我们可以在 这个类里面进行语言的定义来影响当前的请求. public func

  • nginx 多站点配置方法集合

    那么我们开始吧: 1.为我们的站点创建配置文件 我是这么做的,在nginx的配置文件conf目录下创建一个专门存放VirtualHost的目录,命名为vhosts_conf,可以把虚拟目录的配置全部放在这里.在里面创建名为vhosts_modoupi_websuitA.conf的配置文件并打开,我们在这里做配置,往里面写: 复制代码 代码如下: server { listen 80; #监听的端口号 server_name websuitA.com; #域名 #access_log logs/h

  • 一款js和css代码压缩工具[附JAVA环境配置方法]

    TBCompressor的安装很简单,点击install.cmd就可以了,安装后会在里的右键菜单里出现"Compress CSS or JS"选项,需要压缩文件时只需选取目标文件然后右键点选"Compress CSS or JS"即刻.压缩后的文件会自动重命名. 这里对jQuery1.3 Development版进行压缩测试,效果如下:可以看到效果还是非常不错的:) TBCompressor下载 需要注意的是使用TBCompressor必须要有JAVA环境的支持,需

  • Apache 多端口多站点配置方法

    配置httpd.conf 监听多个端口 复制代码 代码如下: # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the <VirtualHost> # directive. # # Change this to Listen on specific IP addresses as shown below to # preven

  • APACHE 多站点配置方法

    例如你的主机IP:192.168.1.8 而你有三个站点,域名为:www.111.com,www.222.com,www.333.com 相应的网站文件放在主机的:\website\111;D:\website\222;D:\website\333文件夹下 现在打开APACHE配置文件httpd.conf文件,设置不同的域名到不同的目录中: 复制代码 代码如下: NameVirtualHost 192.168.1.8 <VirtualHost 192.168.1.8> DocumentRoot

  • Apache 开通子站点配置方法

    由于没有自己的虚拟主机,所以就打算存在自己的小本上.可是,发现自己的www根目录里有很多文件夹,都是以前做的东西,总不能把自己的记录系统和他们混着放吧?于是我就想给自己开个主站点.因此有了这篇文章. 目标:在浏览器地址栏输入"myhost"后打开我自己的记录西系统的主页. 实现: 1.由于我是在本机做,所以需要修改host文件(c:\windows\System32\drivers\etc\hosts),添加"myhost"域名(当然你可以用任何你想用的名称)指向本

  • windows中PHP5.2.14以及apache2.2.16安装配置方法第1/2页

    首先下载好需要安装的配置文件1.apache-2.2.162.php-5.2.14-Win32 一.apache配置 apache的安装不说了,安装过程中选择自己想安装的位置,一路next,就可以了.默认80端口,安装结束后,浏览器输入http://localhost/进行验证,成功的话会输出It works! apache配置:配置文件位于安装目录下的%APACHE_HOME%\conf\httpd.conf,修改根目录DocumentRoot(一共两处).端口也在这里修改. 二.php配置

  • URLScan工具配置方法第1/2页

    如何配置 URLScan 工具 察看本文应用于的产品 文章编号 : 326444  最后修改 : 2007年3月14日  修订 : 5.3  我们强烈建议所有运行 Microsoft Windows Server 2003 的用户将 Microsoft Internet 信息服务 (IIS) 升级到 6.0 版,因为 IIS 6.0 显著增强了 Web 基础结构的安全性.有关与 IIS 安全性相关的主题的更多信息,请访问下面的 Microsoft 网站: http://www.microsoft

  • win2003下安装apache2.2.3+php5.2+mysql+Zend的配置方法第1/2页

    写一个现在来说最新的最详细的安装说明,因为我是重装系统后再配置的,有部分只需要修改配置文件就可以了 一.使用软件: apache_2.2.3-win32-x86-no_ssl.msi php-5.2.0-Win32.zip mysql-4.1.18-win32.zip或mysql-5.0.18-win32.zip phpMyAdmin-2.9.1.1 配置环境:Windows 2003 sp1 二.具体步骤 注意事项:安装过程,任何目录和文件名都不要使用空格, 不要使用D:\Program Fi

随机推荐