当前位置: 操作系统/服务器>linux
本页文章导读:
▪Win2003服务器 IIS6.0 rewrite的设置图文教程
首先下载rewrite.rar 的附件,解压到任意盘上的任意目录,我解压到rewrite-ss。本地下载 代码如下:[ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 # Protect httpd.ini and httpd.parse.errors f.........
▪win2003 iis6 Rewrite权限设置问题 解决了 大家共享 2003NTFS用户 你不看肯定开不开
先下载Rewrite模块,见附件一、安装模块将附件中的文件解压到一个目录中,打开IIS管理器,
1.jpg (329.63 KB)
2006-5-10 16:05选择网站属性,到ISAPI筛选器,
2.jpg (352.21 KB)
2006-5-10 16:05点添加
3.jp.........
▪ISAPI Rewrite 非官方中文配置手册_蓝色版本第1/3页
发这个帮助文件是因为在给朋友设置主机的时候发现他们的ISAPI Rewrite的设置都有些不正确,有些甚至阻碍了站点的正常运行。就把官方自带的英文帮助粗略的翻译了一下。大家可以自由使.........
[1]Win2003服务器 IIS6.0 rewrite的设置图文教程
来源: 互联网 发布时间: 2013-12-24
首先下载rewrite.rar 的附件,解压到任意盘上的任意目录,我解压到rewrite-ss。
本地下载
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/([a-z0-9\-]+\.html)\?*(.*)$ $1/archiver/index\.php\?$2&$3
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html\?*(.*)$ $1/forumdisplay\.php\?fid=$2&page=$3&$4
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$ $1/viewthread\.php\?tid=$2&extra=page\%3D$4&page=$3&$4
RewriteRule ^(.*)/profile-(username|uid)-(.+)\.html\?*(.*)$ $1/viewpro\.php\?$2=$3&$4
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html\?*(.*)$ $1/space\.php\?$2=$3&$4
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|png) /block.gif [I,O]
# SupeSite Rewrite规则
# 独立主机用户
# 修改以下语句中的 /supesite 修改为你的SupeSite目录地址,如果程序放在根目录中,请将 /supesite 修改为 /
RewriteRule ^/([0-9]+)/spacelist(.+)$ /index\.php\?uid/$1/action/spacelist/type$2 [L]
RewriteRule ^/([0-9]+)/viewspace(.+)$ /index\.php\?uid/$1/action/viewspace/itemid$2 [L]
RewriteRule ^/([0-9]+)/viewbbs(.+)$ /index\.php\?uid/$1/action/viewbbs/tid$2 [L]
RewriteRule ^/([0-9]+)/(.*)$ /index\.php\?uid/$1/$2 [L]
RewriteRule ^/([0-9]+)$ /index\.php\?uid/$1 [L]
RewriteRule ^/action(.+)$ /index\.php\?action$1 [L]
RewriteRule ^/category(.+)$ /index\.php\?action/category/catid$1 [L]
RewriteRule ^/viewnews(.+)$ /index\.php\?action/viewnews/itemid$1 [L]
RewriteRule ^/viewthread(.+)$ /index\.php\?action/viewthread/tid$1 [L]
RewriteRule ^/mygroup(.+)$ /index\.php\?action/mygroup/gid$1 [L]
RewriteRule ^/index(.*)$ /index\.php [L]
为保险起见,给目录everyone 运行和读取的权限。
在IIS管理器里找到SS站点,右键选属性。
在 ISAPI 筛选器里添加,规则你可以自己取名,这里我填rewrite 。
确定后,将网站停止再启动,在属性ISAPI 筛选器里看到所加的规则已经出现绿色的箭头。
论坛刷新一下就可以看到页面已经静态化了。
进入SS/XS后台,系统设置里选取rewrite 模式,更新缓存。
页面静态化了,但是论坛帖子还是动态页面。
在SS/XS后台系统设置里,选站点模式就完全静态化。
看看个人空间,地址里的小问号已经没有了。
特别提示:例子里的SS与论坛安装在一起,SS在根目录,论坛在子目录。
本地下载
代码如下:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/([a-z0-9\-]+\.html)\?*(.*)$ $1/archiver/index\.php\?$2&$3
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html\?*(.*)$ $1/forumdisplay\.php\?fid=$2&page=$3&$4
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$ $1/viewthread\.php\?tid=$2&extra=page\%3D$4&page=$3&$4
RewriteRule ^(.*)/profile-(username|uid)-(.+)\.html\?*(.*)$ $1/viewpro\.php\?$2=$3&$4
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html\?*(.*)$ $1/space\.php\?$2=$3&$4
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|png) /block.gif [I,O]
# SupeSite Rewrite规则
# 独立主机用户
# 修改以下语句中的 /supesite 修改为你的SupeSite目录地址,如果程序放在根目录中,请将 /supesite 修改为 /
RewriteRule ^/([0-9]+)/spacelist(.+)$ /index\.php\?uid/$1/action/spacelist/type$2 [L]
RewriteRule ^/([0-9]+)/viewspace(.+)$ /index\.php\?uid/$1/action/viewspace/itemid$2 [L]
RewriteRule ^/([0-9]+)/viewbbs(.+)$ /index\.php\?uid/$1/action/viewbbs/tid$2 [L]
RewriteRule ^/([0-9]+)/(.*)$ /index\.php\?uid/$1/$2 [L]
RewriteRule ^/([0-9]+)$ /index\.php\?uid/$1 [L]
RewriteRule ^/action(.+)$ /index\.php\?action$1 [L]
RewriteRule ^/category(.+)$ /index\.php\?action/category/catid$1 [L]
RewriteRule ^/viewnews(.+)$ /index\.php\?action/viewnews/itemid$1 [L]
RewriteRule ^/viewthread(.+)$ /index\.php\?action/viewthread/tid$1 [L]
RewriteRule ^/mygroup(.+)$ /index\.php\?action/mygroup/gid$1 [L]
RewriteRule ^/index(.*)$ /index\.php [L]
为保险起见,给目录everyone 运行和读取的权限。
在IIS管理器里找到SS站点,右键选属性。
在 ISAPI 筛选器里添加,规则你可以自己取名,这里我填rewrite 。
确定后,将网站停止再启动,在属性ISAPI 筛选器里看到所加的规则已经出现绿色的箭头。
论坛刷新一下就可以看到页面已经静态化了。
进入SS/XS后台,系统设置里选取rewrite 模式,更新缓存。
页面静态化了,但是论坛帖子还是动态页面。
在SS/XS后台系统设置里,选站点模式就完全静态化。
看看个人空间,地址里的小问号已经没有了。
特别提示:例子里的SS与论坛安装在一起,SS在根目录,论坛在子目录。
[2]win2003 iis6 Rewrite权限设置问题 解决了 大家共享 2003NTFS用户 你不看肯定开不开
来源: 互联网 发布时间: 2013-12-24
先下载Rewrite模块,见附件
一、安装模块
将附件中的文件解压到一个目录中,
打开IIS管理器,
选择网站属性,到ISAPI筛选器,
点添加
在名称中输入rewrite,可执行文件选择刚才解压后的文件Rewrite.dll,点确定;再点确定,关闭属性对话框。
再次查看网站属性,到ISAPI筛选器
如果看到状态为向上的绿色箭头,就说明Rewrite模块安装成功了。
二、修改Rewrite规则
到刚才解压的目录下,找到httpd.ini文件,在里面修改Rewrite规则。
注:一旦修改了Rewrite规则,请重启网站,使规则生效。
压缩包中我们已经写好了Discuz4.1和SupeSite的Rewrite规则。(修正了独立主机用户在启用Rewrite后,论坛无法查看帖子的错误)
我是看了这片文章得到的启迪 IIS_WPG的重要性 同样也把 Rewrite 文件设置了 OK了
引用:
相关权限(如果系统是Windows 2000就无需设置)
对于Windows 2003,由于IIS 6的权限的需要,您必须正确设置相关的权限系统才能正常运行。请看下面的Windows 2003新内核权限设置的特别说明:
在前面的安装完成后,如果您的IIS6是用新的内核模式运行,如果您的硬盘权限配置不正确,会引起“Service Unavailable”错误。您需要按以下方式正确配置相关的权限:
关键点是:IIS 6 默认使用的工作进程隔离模式需要IIS_WPG组有相关的读的权限,必须得检查“嗅探狗”安装的目录是否有足够的权限,从而保证“嗅探狗”能够正常运行。
IIS_WPG组的意义是:该帐户指派了在 Web 服务器上启动和运行工作进程所需的最低权限和用户权限。它相当于IIS5中的IWAM_computername用户,但权限更低一些。注意,IIS_WPG并不是IUSR_computername用户, 因此它和虚拟主机的“运行时用户”没有关系。给IIS_WPG用户授权因而也不会对FSO的权限有任何影响。
下面所列举的例子是:嗅探狗安装在d:\unviersal\UlinkSpy目录下的权限修改过程:
第一步:设置安装目录所在硬盘的根权限(例如d:\),让IIS_WPG (IIS进程) 组有读的权限.
点击添加:
点击高级:
点击“立即查找“,找到IIS_WPG后双击该用户
点击确定后可以回到下图,可以看到组或用户名称列表中多了IIS_WPG用户,选中该用户,赋给他读取权限:
第二步:设置安装目录的权限,让IIS_WPG (IIS进程) 组有读取和运行、列出文件夹目录、读取、写入权限。
选择安装目录:
点击添加
输入IIS_WPG后确定:
再次确定,默认地就会对IIS_WPG授予权限了。
设置完成后请重启IIS,至此 Windows 2003 IIS 6 进程隔离模式的安装全部完成。
额外说明:
由于嗅探狗需要判断客户端访问的文件存不存在, 如果你的网站在嗅探狗的过滤下就必须将网站资源以及防盗链的资源的读取权限给IIS_WPG用户,如果没有权限,嗅探狗会认为文件不存在。 具体设置方法这里再说明。
正确代码
引用:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Discuz4.10 Rewrite规则
RewriteRule ^(.*)/archiver/([a-z0-9\-]+\.html)$ $1/archiver/index\.php\?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay\.php\?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread\.php\?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro\.php\?$2=$3
# SupeSite Rewrite规则
# 独立主机用户
# 修改以下语句中的 /supesite 修改为你的SupeSite目录地址,如果程序放在根目录中,请将 /supesite 修改为 /
RewriteRule ^/([0-9]+)/spacelist(.*)$ /index\.php\?$1/action_spacelist$2
RewriteRule ^/([0-9]+)/viewspace(.+)$ /index\.php\?$1/action_viewspace_itemid$2
RewriteRule ^/([0-9]+)/viewbbs(.+)$ /index\.php\?$1/action_viewbbs_tid$2
RewriteRule ^/([0-9]+)/(.*)$ /index\.php\?$1/$2
RewriteRule ^/([0-9]+)$ /index\.php\?$1
RewriteRule ^/action(.+)$ /index\.php\?action$1
RewriteRule ^/category_(.+)$ /index\.php\?action_category_catid_$1
RewriteRule ^/itemlist_(.+)$ /index\.php\?action_itemlist_catid_$1
RewriteRule ^/viewnews_(.+)$ /index\.php\?action_viewnews_itemid_$1
RewriteRule ^/viewthread_(.+)$ /index\.php\?action_viewthread_tid_$1
RewriteRule ^/index([\.a-zA-Z]*)$ /index.php
一、安装模块
将附件中的文件解压到一个目录中,
打开IIS管理器,
选择网站属性,到ISAPI筛选器,
点添加
在名称中输入rewrite,可执行文件选择刚才解压后的文件Rewrite.dll,点确定;再点确定,关闭属性对话框。
再次查看网站属性,到ISAPI筛选器
如果看到状态为向上的绿色箭头,就说明Rewrite模块安装成功了。
二、修改Rewrite规则
到刚才解压的目录下,找到httpd.ini文件,在里面修改Rewrite规则。
注:一旦修改了Rewrite规则,请重启网站,使规则生效。
压缩包中我们已经写好了Discuz4.1和SupeSite的Rewrite规则。(修正了独立主机用户在启用Rewrite后,论坛无法查看帖子的错误)
我是看了这片文章得到的启迪 IIS_WPG的重要性 同样也把 Rewrite 文件设置了 OK了
引用:
相关权限(如果系统是Windows 2000就无需设置)
对于Windows 2003,由于IIS 6的权限的需要,您必须正确设置相关的权限系统才能正常运行。请看下面的Windows 2003新内核权限设置的特别说明:
在前面的安装完成后,如果您的IIS6是用新的内核模式运行,如果您的硬盘权限配置不正确,会引起“Service Unavailable”错误。您需要按以下方式正确配置相关的权限:
关键点是:IIS 6 默认使用的工作进程隔离模式需要IIS_WPG组有相关的读的权限,必须得检查“嗅探狗”安装的目录是否有足够的权限,从而保证“嗅探狗”能够正常运行。
IIS_WPG组的意义是:该帐户指派了在 Web 服务器上启动和运行工作进程所需的最低权限和用户权限。它相当于IIS5中的IWAM_computername用户,但权限更低一些。注意,IIS_WPG并不是IUSR_computername用户, 因此它和虚拟主机的“运行时用户”没有关系。给IIS_WPG用户授权因而也不会对FSO的权限有任何影响。
下面所列举的例子是:嗅探狗安装在d:\unviersal\UlinkSpy目录下的权限修改过程:
第一步:设置安装目录所在硬盘的根权限(例如d:\),让IIS_WPG (IIS进程) 组有读的权限.
点击添加:
点击高级:
点击“立即查找“,找到IIS_WPG后双击该用户
点击确定后可以回到下图,可以看到组或用户名称列表中多了IIS_WPG用户,选中该用户,赋给他读取权限:
第二步:设置安装目录的权限,让IIS_WPG (IIS进程) 组有读取和运行、列出文件夹目录、读取、写入权限。
选择安装目录:
点击添加
输入IIS_WPG后确定:
再次确定,默认地就会对IIS_WPG授予权限了。
设置完成后请重启IIS,至此 Windows 2003 IIS 6 进程隔离模式的安装全部完成。
额外说明:
由于嗅探狗需要判断客户端访问的文件存不存在, 如果你的网站在嗅探狗的过滤下就必须将网站资源以及防盗链的资源的读取权限给IIS_WPG用户,如果没有权限,嗅探狗会认为文件不存在。 具体设置方法这里再说明。
正确代码
引用:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Discuz4.10 Rewrite规则
RewriteRule ^(.*)/archiver/([a-z0-9\-]+\.html)$ $1/archiver/index\.php\?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay\.php\?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread\.php\?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro\.php\?$2=$3
# SupeSite Rewrite规则
# 独立主机用户
# 修改以下语句中的 /supesite 修改为你的SupeSite目录地址,如果程序放在根目录中,请将 /supesite 修改为 /
RewriteRule ^/([0-9]+)/spacelist(.*)$ /index\.php\?$1/action_spacelist$2
RewriteRule ^/([0-9]+)/viewspace(.+)$ /index\.php\?$1/action_viewspace_itemid$2
RewriteRule ^/([0-9]+)/viewbbs(.+)$ /index\.php\?$1/action_viewbbs_tid$2
RewriteRule ^/([0-9]+)/(.*)$ /index\.php\?$1/$2
RewriteRule ^/([0-9]+)$ /index\.php\?$1
RewriteRule ^/action(.+)$ /index\.php\?action$1
RewriteRule ^/category_(.+)$ /index\.php\?action_category_catid_$1
RewriteRule ^/itemlist_(.+)$ /index\.php\?action_itemlist_catid_$1
RewriteRule ^/viewnews_(.+)$ /index\.php\?action_viewnews_itemid_$1
RewriteRule ^/viewthread_(.+)$ /index\.php\?action_viewthread_tid_$1
RewriteRule ^/index([\.a-zA-Z]*)$ /index.php
[3]ISAPI Rewrite 非官方中文配置手册_蓝色版本第1/3页
来源: 互联网 发布时间: 2013-12-24
发这个帮助文件是因为在给朋友设置主机的时候发现他们的ISAPI Rewrite的设置都有些不正确,有些甚至阻碍了站点的正常运行。就把官方自带的英文帮助粗略的翻译了一下。大家可以自由使用和转载。但转载时如果你愿意请注明是 蓝色 翻译的版本。
===================
ISAPI Rewrite 配置简介:
在NT/2000/XP和2003平台上,ISAPI Rewrite在系统帐户下射入INETINFO进程与 IIS 以共存模式过滤器运行。所以系统帐户应该给予对ISAPI- REWIRITE DLLS Internet匿名访问组 可读可执行权限 和所有的 HTTPD。INI 文件可读权限,还应该给予系统帐户对于所有包括 HTTPD。INI 文件的文件夹的可写权限,这将允许产生 HTTP。 PARSE。ERRORS 日志文件,来记录配置文件语法错误。对于PROXY模块也需要额外的权限,因为它将运行于连接池或HIGH-ISPLATED 应用模式,IIS帐户共享池和HIGH-ISOLATION池应被给予对RWHELPERE。DLL的可读权限。缺省情况下IWAM-《计算机名》被用于所有的池,在相应的COM+应用设置中应借助COM+ADMINISTRATION MMC SNAP-IN建立池帐户
配置文件格式化:
配置文件分为两种: GLOBAL(服务器全局模式)和 INDIVIDUAL(站点独立设置模式)文件,GLOBAL(服务器端全局模式)配置文件应该被放在ISAPI-REWRITE 安装目录中,名为 httpd.ini 。这个文件可以通过开始菜单的快捷方式访问和配置,这个文件里面的映射规则为全局规则,将针对所有站点起效。INDIVIDUAL(站点独立设置模式)配置文件应该被放在虚拟站点的根目录内,也被命名为httpd.ini文件,这里面应该放置针对站点的映射配置设置,只针对被放置的虚拟站点有效。两种类型的 httpd.ini 都是标准的windows ini 文件。所有的映射规则应该被放置在 [ISAPI_Rewrite] 之后。之前的文件文本将被忽略。
HTTPD.INI文件示例
[ISAPI_Rewrite]
# This is a comment
# 300 = 5 minutes
CacheClockRate 300
RepeatLimit 20
# 设置其他人没有下载 httpd.ini 和 httpd.parse.errors 文件的权限
RewriteRule /httpd(?:\.ini|\.parse\.errors) / [F,I,O]
# Block external access to the Helper ISAPI Extension
RewriteRule .*\.isrwhlp / [F,I,O]
# 配置规则
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头文件的值
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
[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
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
RewriteCond METHOD OPTIONS
RewriteRule (.*) /webdav.asp?$1
RewriteHeader METHOD OPTIONS GET
RewriteProxy directive
Syntax: RewriteProxy Pattern FormatString [Flags]
强制目的URI在内部强制为代理需求并且立即通过ISAPI扩展应付代理需求,这将允许IIS作为代理服务器并且重路由到其他站点和服务器
Pattern
限定规则表达式以匹配Request-URI,
FormatString
限定将生成新的URI的FormatString
[Flags]
是一个下列FLAGS的命令分隔列表
D (Delegate security)
代理模式将试图以当前假冒的用户资格登陆远程服务器,
C (use Credentials)
代理模式将试图一在URL或基本授权头文件中指定的资格登陆远程服务器,用这个标记你可以使用http://user:password@host.com/path/ syntax 作为URL
F (Follow redirects)
缺省情况下ISAPI_Rewrite 将试图将MAP远程服务器返回的重定向指令到本地服务器命名空间,如果远程服务器返回重定向点到那台服务器其他的某个位置,ISAPI_Rewrite 将修改这一重定向指令指向本服务器名,这将避免用户看到真实(内部)服务器名称
使用F标记强制代理模式内部跟踪远程服务器返回的重定向指令,使用这个标记如果你根本不需要接受远程服务器的重定向指令,在WINHTTP设置中有重定向限制以避免远程重定向循环
===================
ISAPI Rewrite 配置简介:
在NT/2000/XP和2003平台上,ISAPI Rewrite在系统帐户下射入INETINFO进程与 IIS 以共存模式过滤器运行。所以系统帐户应该给予对ISAPI- REWIRITE DLLS Internet匿名访问组 可读可执行权限 和所有的 HTTPD。INI 文件可读权限,还应该给予系统帐户对于所有包括 HTTPD。INI 文件的文件夹的可写权限,这将允许产生 HTTP。 PARSE。ERRORS 日志文件,来记录配置文件语法错误。对于PROXY模块也需要额外的权限,因为它将运行于连接池或HIGH-ISPLATED 应用模式,IIS帐户共享池和HIGH-ISOLATION池应被给予对RWHELPERE。DLL的可读权限。缺省情况下IWAM-《计算机名》被用于所有的池,在相应的COM+应用设置中应借助COM+ADMINISTRATION MMC SNAP-IN建立池帐户
配置文件格式化:
配置文件分为两种: GLOBAL(服务器全局模式)和 INDIVIDUAL(站点独立设置模式)文件,GLOBAL(服务器端全局模式)配置文件应该被放在ISAPI-REWRITE 安装目录中,名为 httpd.ini 。这个文件可以通过开始菜单的快捷方式访问和配置,这个文件里面的映射规则为全局规则,将针对所有站点起效。INDIVIDUAL(站点独立设置模式)配置文件应该被放在虚拟站点的根目录内,也被命名为httpd.ini文件,这里面应该放置针对站点的映射配置设置,只针对被放置的虚拟站点有效。两种类型的 httpd.ini 都是标准的windows ini 文件。所有的映射规则应该被放置在 [ISAPI_Rewrite] 之后。之前的文件文本将被忽略。
HTTPD.INI文件示例
[ISAPI_Rewrite]
# This is a comment
# 300 = 5 minutes
CacheClockRate 300
RepeatLimit 20
# 设置其他人没有下载 httpd.ini 和 httpd.parse.errors 文件的权限
RewriteRule /httpd(?:\.ini|\.parse\.errors) / [F,I,O]
# Block external access to the Helper ISAPI Extension
RewriteRule .*\.isrwhlp / [F,I,O]
# 配置规则
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头文件的值
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
[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
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
RewriteCond METHOD OPTIONS
RewriteRule (.*) /webdav.asp?$1
RewriteHeader METHOD OPTIONS GET
RewriteProxy directive
Syntax: RewriteProxy Pattern FormatString [Flags]
强制目的URI在内部强制为代理需求并且立即通过ISAPI扩展应付代理需求,这将允许IIS作为代理服务器并且重路由到其他站点和服务器
Pattern
限定规则表达式以匹配Request-URI,
FormatString
限定将生成新的URI的FormatString
[Flags]
是一个下列FLAGS的命令分隔列表
D (Delegate security)
代理模式将试图以当前假冒的用户资格登陆远程服务器,
C (use Credentials)
代理模式将试图一在URL或基本授权头文件中指定的资格登陆远程服务器,用这个标记你可以使用http://user:password@host.com/path/ syntax 作为URL
F (Follow redirects)
缺省情况下ISAPI_Rewrite 将试图将MAP远程服务器返回的重定向指令到本地服务器命名空间,如果远程服务器返回重定向点到那台服务器其他的某个位置,ISAPI_Rewrite 将修改这一重定向指令指向本服务器名,这将避免用户看到真实(内部)服务器名称
使用F标记强制代理模式内部跟踪远程服务器返回的重定向指令,使用这个标记如果你根本不需要接受远程服务器的重定向指令,在WINHTTP设置中有重定向限制以避免远程重定向循环
最新技术文章: