gpt4 book ai didi

ISAPI-REWRITE伪静态规则写法以及说明

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ISAPI-REWRITE伪静态规则写法以及说明由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

REWRITE伪静态 1、Apache配置: 进入/etc/httpd/conf/目录下,打开httpd.conf文件。 启用rewrite # LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 # 启用.htaccess AllowOverride None 修改为: AllowOverride All -------------------------------------------------------------------------------- 2、Rewrite写法 服务器有配置文件不可能由我们来改,所以大多情况下要在网站的根目录下建一个.htaccess文件。 RewriteEngine on //启动rewrite引擎 RewriteRule ^/index([0-9]*).html$ /index.php?id=$1 //“([0-9]*)” 代表范围 用(.*)代表所有,下同。 RewriteRule ^/index([0-9]*)/$ /index.php?id=$1 [R] //虚拟目录 -------------------------------------------------------------------------------- 3、mod_rewrite 规则修正符 1) R 强制外部重定向 2) F 禁用URL,返回403HTTP状态码。 3) G 强制URL为GONE,返回410HTTP状态码。 4) P 强制使用代理转发。 5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。 6) N 重新从第一条规则开始运行重写过程。 7) C 与下一条规则关联,如果规则匹配则正常处理,以下修正符无效 8) T=MIME-type(force MIME type) 强制MIME类型 9) NS 只用于不是内部子请求 10) NC 不区分大小写 11) QSA 追加请求字符串 12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1 ISAPI_Rewrite规则写法 常见ISAPI_Rewrite规则写法 。

复制代码 代码如下

# 排除当前虚拟主机需要正常访问的域名(web.3637.com www.3637.com) # RewriteCond Host: (?:web|www)\.eboat\.cn # 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统) RewriteCond Host: web\.eboat\.cn RewriteRule (.*) $1 [L] # 解决不规范目录(末尾无/)的问题 # 但前提是目录名不含‘.'而文件名必须包含,否则无法区分两者 # 如果保证URL中的目录名称规范,则无需此规则 RewriteRule ^/([^.]+[^/]$) /$1/ [L,R] # 提取任意的二级域名名称(即第一个词汇) # 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下 # 如 test.3637.com => web.3637.com/Home/test RewriteCond Host: ([a-zA-Z0-9_-]+)\.eboat\.cn RewriteRule ^/(.*) /Home/$1/$2 [I,L] [ISAPI_Rewrite] RepeatLimit 1 # Defend your computer from some worm attacks RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O] # 排除当前虚拟主机需要正常访问的域名(web.3637.com www.3637.com) # RewriteCond Host: (?:web|www)\.eboat\.cn # 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统) RewriteCond Host: web\.eboat\.cn RewriteRule (.*) $1 [L] # 解决不规范目录(末尾无/)的问题 # 但前提是目录名不含‘.'而文件名必须包含,否则无法区分两者 # 如果保证URL中的目录名称规范,则无需此规则 RewriteRule ^/([^.]+[^/]$) /$1/ [L,R] # 提取任意的二级域名名称(即第一个词汇) # 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下 # 如 test.3637.com => web.3637.com/Home/test RewriteCond Host: ([a-zA-Z0-9_-]+)\.eboat\.cn RewriteRule ^/(.*) /Home/$1/$2 [I,L] 。

HTTPD.INI文件示例 。

复制代码 代码如下

[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头文件的值 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模式应该生成一个空字符串,例如这一规则将从客户请求中重移代理 。

最后此篇关于ISAPI-REWRITE伪静态规则写法以及说明的文章就讲到这里了,如果你想了解更多关于ISAPI-REWRITE伪静态规则写法以及说明的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com