百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 网站模板(百分百源码网)>电脑软件>服务器> ISAPI-REWRITE伪静态法则写法以及注明
分享本文到:

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

发布时间:05/16 来源:未知 浏览: 关键词:
REWRITE伪静态

一、Apache配置:
进入/etc/httpd/conf/目录下,打开httpd.conf文件。
启用rewrite
# LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的 #
启用.htaccess AllowOverride None 修改为: AllowOverride All
--------------------------------------------------------------------------------
二、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] //虚拟目录
--------------------------------------------------------------------------------
三、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模式应当生成一个空字符串,例如这一法则将从客户请求中重移代理

热门标签:dede模板 / destoon模板 / dedecms模版 / 织梦模板
责任编辑:x9M6g
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有154人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助



订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板