如何利用Rewrite规则封掉对方的IP
自己研究下吧 哈哈 都有注释的
<%
Dim IP,IPString,VisitIP
'要禁止的IP地址
IPString="|219.142.118.71|127.0.0.1|"
'获取IP地址
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then
IP = Request.ServerVariables("REMOTE_ADDR")
End If
VisitIP="|"&IP&"|"
If instr(1,IPString,VisitIP)>0 Then
response.write "你的IP被禁止"
response.end
End If
response.Write("你的IP:"&IP&"可以访问本站")
%>
<%
Dim IP,forbidIP1,forbidIP2,isForbid
''获取访问者的地址
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then
IP = Request.ServerVariables("REMOTE_ADDR")
End If
''禁止的IP地址段为220.191.0.0~220.191.255.255
forbidIP1="220.191.0.0"
forbidIP2="220.191.255.255"
isForbid=CheckIP(IP,forbidIP1,forbidIP2)
If isForbid=true Then
response.Write("禁止访问!")
response.End()
End IF
Response.Write(IP)
Function CheckIP(IP,forbidIP1,forbidIP2)
Dim IPString,forbid1,forbid2,forbid
forbid=false
IPString=split(IP,".")
forbid1=split(forbidIP1,".")
forbid2=split(forbidIP2,".")
If cint(IPString(0))>cint(forbid1(0)) And cint(IPString(0))<cint(forbid2(0)) Then ''判断IP地址段是否合法
forbid=true
ElseIF cint(IPString(1))>cint(forbid1(1)) And cint(IPString(1))<cint(forbid2(1)) Then
forbid=true
ElseIF cint(IPString(2))>cint(forbid1(2)) And cint(IPString(2))<cint(forbid2(2)) Then
forbid=true
ElseIF cint(IPString(3))>=cint(forbid1(3)) And cint(IPString(3))<=cint(forbid2(3)) Then
forbid=true
End IF
End Function
%>
Discuz! Rewrite 规则
如果看到状态为向上的绿色箭头,就说明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中的putername用户,但权限更低一些。注意,IIS_WPG并不是putername用户, 因此它和虚拟主机的“运行时用户”没有关系。给IIS_WPG用户授权因而也不会对FSO的权限有任何影响。
下面所列举的例子是:嗅探狗安装在d:unviersalUlinkSpy目录下的权限修改过程:
第一步:设置安装目录所在硬盘的根权限(例如d:),让IIS_WPG (IIS进程) 组有读的权限.
ISAPI Rewrite 规则怎么写?
不知道你要写什么规则,给你点参考吧:
例:RewriteRule /code/project/([0-9,a-z]*).html /soft.jsp?softpy=$1 [I]
其他的参数一览
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)
大写
apache rewrite规则如何写?
RewriteEngine on
RewriteBase /
RewriteRule ^abc/([0-9]+).html$ abc.php?id=$1
这个不需要修改ess里,然后放到根目录就OK了.
不过apache一定要打开mod_rewrite才行
是否Rewrite 规则需要更新为IIS7的规则
IIS7上至少可以用上三种组件及规则,要根据具体的安装来决定,不是一概而论的