|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令。
REWRITE伪静态
1、Apache设置:
进进/etc/httpd/conf/目次下,翻开httpd.conf文件。
启用rewrite
#LoadModulerewrite_modulemodules/mod_rewrite.so往除后面的#
启用.htaccessAllowOverrideNone修正为:AllowOverrideAll
--------------------------------------------------------------------------------
2、Rewrite写法
服务器有设置文件不成能由我们来改,以是年夜多情形下要在网站的根目次下建一个.htaccess文件。
RewriteEngineon//启动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(forceMIMEtype)强迫MIME范例
9)NS只用于不是外部子哀求
10)NC不辨别巨细写
11)QSA追加哀求字符串
12)NE不在输入本义特别字符\%3d$1等价于=$1
ISAPI_Rewrite划定规矩写法
罕见ISAPI_Rewrite划定规矩写法
.代码以下:
#扫除以后假造主机必要一般会见的域名(web.3637.comwww.3637.com)
#RewriteCondHost:(?:web|www).eboat.cn
#多半情形下是一个,即以后供应二级域名服务的体系(如建站体系)
RewriteCondHost: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
RewriteCondHost:([a-zA-Z0-9_-]+).eboat.cn
RewriteRule^/(.*)/Home/$1/$2[I,L]
[ISAPI_Rewrite]
RepeatLimit1
#Defendyourcomputerfromsomewormattacks
RewriteRule.*(?:global.asa|default.ida|root.exe|..).*.[F,I,O]
#扫除以后假造主机必要一般会见的域名(web.3637.comwww.3637.com)
#RewriteCondHost:(?:web|www).eboat.cn
#多半情形下是一个,即以后供应二级域名服务的体系(如建站体系)
RewriteCondHost: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
RewriteCondHost:([a-zA-Z0-9_-]+).eboat.cn
RewriteRule^/(.*)/Home/$1/$2[I,L]
HTTPD.INI文件示例
.代码以下:
[ISAPI_Rewrite]
#Thisisacomment
#300=5minutes
CacheClockRate300
RepeatLimit20
#Blockexternalaccesstothehttpd.iniandhttpd.parse.errorsfiles
RewriteRule/httpd(?:.ini|.parse.errors)/[F,I,O]
#BlockexternalaccesstotheHelperISAPIExtension
RewriteRule.*.isrwhlp/[F,I,O]
#Somecustomrules
RewriteCondHost:(.+)
RewriteCond指令
Syntax:(句法)RewriteCondTestVerbCondPattern[Flags]
这一指令界说一个前提划定规矩,在RewriteRule大概RewriteHeader或RewriteProxy指令前预行RewriteCond指令,前面的划定规矩只要它的,形式婚配URI确当前形态而且分外的前提也被使用才会被使用。
TestVerb
Specifiesverbthatwillbematchedagainstregularexpression.
出格界说的动词婚配划定的表达式
TestVerb=(URL|METHOD|VERSION|HTTPHeaderName:|%ServerVariable)where:
URL-returnsRequest-URIofclientrequestasdescribedinRFC2068(HTTP1.1);
前往客户端在RFC2068中形貌的需求的Request-URI
METHOD-returnsHTTPmethodofclientrequest(OPTIONS,GET,HEAD,POST,PUT,DELETEorTRACE);
前往客户端需求(OPTIONS,GET,HEAD,POST,PUT,DELETEorTRACE)的HTTP办法
VERSION-returnsHTTPversion;
前往HTTP版本
HTTPHeaderName-returnsvalueofthespecifiedHTTPheader.HTTPHeaderNamecanbeanyvalidHTTPheadername.Headernamesshouldincludethetrailingcolon":".IfspecifiedheaderdoesnotexistsinaclientsrequestTestVerbistreatedasemptystring.
前往特界说的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
TheregularexpressiontomatchTestVerb
划定规矩表达式婚配TestVerb
[Flags]
Flagsisacomma-separatedlistofthefollowingflags:
O(nOrmalize)
Normalizesstringbeforeprocessing.NormalizationincludesremovingofanURL-encoding,illegalcharacters,etc.ThisflagisusefulwithURLsandURL-encodedheaders
RewriteRule指令
Syntax:RewriteRulePatternFormatString[Flags]
这个指令能够不止产生一次,每一个指令界说一个独自的重写划定规矩,这些划定规矩的界说命令很主要,由于这个命令在使用运转时划定规矩是有效途的
I(ignorecase)
不论巨细写强行指定字符婚配,这个FLAG影响RewriteRule指令和响应的RewriteCond指令
F(Forbidden)
对客户端做反响,中断REWRITING历程而且发送403毛病,注重在这类情形下FORMATSTRING是无用的并能够设置为任何非空字符串。
L(lastrule)
不该用任何重写划定规矩在此中断重写历程,利用这个FLAG以制止以后被重写的URI被前面的划定规矩再次重写
N(Nextiteration)
强迫REWRITINGENGINE调剂划定规矩方针而且重新重启划定规矩反省(一切修正将保留),重启次数由RepeatLimit指定的值限定,假如这个数值凌驾NFLAG将被疏忽
NS(Nextiterationofthesamerule)
以N标志事情不从不异的划定规矩重启划定规矩划定规矩历程(比方强迫反复划定规矩使用),经由过程RepeatLimit指令指定一个重复实施某一划定规矩的最年夜数量,
P(forceproxy)
强迫目标URI在外部强迫为代办署理需求而且当即经由过程ISAPI扩大对付代办署理需求,必需确认代办署理字符串是一个无效的URI包含协定主机等等不然代办署理将前往毛病
R(explicitredirect)
强迫服务器对客户端收回重定向唆使立即应对,供应目标URI的新地点,重定向划定规矩常常是最初划定规矩
RP(permanentredirect)
几近和[R]标志不异可是公布301HTTP形态而不是302HTTP形态代码
U(UnmangleLog)
当URI是源需求而不是重写需求时纪录URI
O(nOrmalize)
在实施之前尺度化字符串。尺度化包含URL-ENCODING,分歧法的字符的再挪动等,这个标志关于URLS和URLS-ENDODED头是有效的
CL(CaseLower)
小写
CU(CaseUpper)
年夜写
RewriteHeaderdirective
Syntax:RewriteHeaderHeaderNamePatternFormatString[Flags]
这个指令是RewriteRule的更归纳综合化变种,它不但重写URL的客户端需求部分,并且重写HTTP头,这个指令不但用于重写。天生,删除任何HTTP头,乃至改动客户端哀求的办法
HeaderName
指定将被重写的客户头,可取的值与RewriteCond指令中TestVerb参数不异
Pattern
限制划定规矩表达式以婚配Request-URI,
FormatString
限制将天生新的URI的FormatString
[Flags]
是一个以下FLAGS的命令分开列表
I(ignorecase)
不论巨细写强行指定字符婚配,这个FLAG影响RewriteRule指令和响应的RewriteCond指令
F(Forbidden)
对客户端做反响,中断REWRITING历程而且发送403毛病,注重在这类情形下FORMATSTRING是无用的并能够设置为任何非空字符串。
L(lastrule)
不该用任何重写划定规矩在此中断重写历程,利用这个FLAG以制止以后被重写的URI被前面的划定规矩再次重写
N(Nextiteration)
强迫REWRITINGENGINE调剂划定规矩方针而且重新重启划定规矩反省(一切修正将保留),重启次数由RepeatLimit指定的值限定,假如这个数值凌驾NFLAG将被疏忽
NS(Nextiterationofthesamerule)
以N标志事情不从不异的划定规矩重启划定规矩划定规矩历程(比方强迫反复划定规矩使用),经由过程RepeatLimit指令指定一个重复实施某一划定规矩的最年夜数量,
R(explicitredirect)
强迫服务器对客户端收回重定向唆使立即应对,供应目标URI的新地点,重定向划定规矩常常是最初划定规矩
RP(permanentredirect)
几近和[R]标志不异可是公布301HTTP形态而不是302HTTP形态代码
U(UnmangleLog)
当URI是源需求而不是重写需求时纪录URI
O(nOrmalize)
在实施之前尺度化字符串。尺度化包含URL-ENCODING,分歧法的字符的再挪动等,这个标志关于URLS和URLS-ENDODED头是有效的
CL(CaseLower)
小写
CU(CaseUpper)
年夜写
要重挪动头,FORMATSTRING形式应当天生一个空字符串,比方这一划定规矩将从客户哀求中重移代办署理
开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人。 |
|