小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

htaccess語(yǔ)法之RewriteCond與RewriteRule指令格式詳細(xì)解釋

 昵稱597197 2015-03-15

htaccess語(yǔ)法之RewriteCond與RewriteRule指令格式詳細(xì)解釋

 (2012-11-09 18:09:08)
標(biāo)簽: 

htaccess

 

it

分類: 網(wǎng)絡(luò)

上文htaccess語(yǔ)法詳細(xì)解釋與用例分析中對(duì)RewriteCond和RewriteRule的用法進(jìn)行了舉例分析,本文將詳細(xì)描述上述兩個(gè)命令的使用格式,與所使用的變量和規(guī)則。這篇文章很長(zhǎng)啊哈,請(qǐng)認(rèn)真閱讀,內(nèi)容都很有用哦。

RewriteCond指令格式

【說(shuō)明】定義重寫發(fā)生的條件
【語(yǔ)法】RewriteCond TestString CondPattern [flags]

RewriteCond指令定義一條規(guī)則條件。在一條RewriteRule指令前面可能會(huì)有一條或多條RewriteCond指令,只有當(dāng)RewriteCond的條件(CondPattern)匹配成功時(shí),RewriteRule的重寫規(guī)則才被應(yīng)用于當(dāng)前URL處理。

TestString是一個(gè)純文本的字符串,除了包含普通的字符外,還可以包括下列的變量結(jié)構(gòu)擴(kuò)展:

RewriteMap擴(kuò)展:引用方法是:${mapname:key|default} 細(xì)節(jié)請(qǐng)參見RewriteMap指令 。

TestString可以包含服務(wù)器變量 ,引用方法是:%{NAME_OF_VARIABLE}

NAME_OF_VARIABLE可以是下表列出的字符串之一:

HTTP頭連接與請(qǐng)求服務(wù)器自身日期和時(shí)間其它
HTTP_USER_AGENTDOCUMENT_ROOTTIME_YEARAPI_VERSION
HTTP_REFERERSERVER_ADMINTIME_MONTHE_REQUEST
HTTP_COOKIESERVER_NAMETIME_DAYREQUEST_URI
HTTP_FORWARDEDSERVER_ADDRTIME_HOURREQUEST_FILENAME
HTTP_HOSTSERVER_PORTTIME_MINIS_SUBREQ
HTTP_PROXY_CONNECTIONSERVER_PROTOCOLTIME_SECHTTPS
HTTP_ACCEPTSERVER_SOFTWARETIME_WDAY
REMOTE_ADDR
TIME
REMOTE_HOST


REMOTE_PORT


REMOTE_USER


REMOTE_IDENT


REQUEST_METHOD


SCRIPT_FILENAME


PATH_INFO


QUERY_STRING


AUTH_TYPE


這些變量都對(duì)應(yīng)于類似命名的HTTP MIME頭、Apache服務(wù)器的C變量、Unix系統(tǒng)中的struct tm字段,其中的大多數(shù)在其他的手冊(cè)或者CGI規(guī)范中都有說(shuō)明。 其中有mod_rewrite所特有的變量如下:

IS_SUBREQ

如果正在處理的請(qǐng)求是一個(gè)子請(qǐng)求,它將包含字符串”true”,否則就是”false”。 模塊為了解析URI中的附加文件,可能會(huì)產(chǎn)生子請(qǐng)求。

API_VERSION

這是正在使用中的Apache模塊API(服務(wù) 器和模塊之間內(nèi)部接口)的版本, 其定義位于include/ap_mmn.h中。 此模塊API版本對(duì)應(yīng)于正在使用的Apache的版本(比如在Apache 1.3.14的發(fā)行版中這個(gè)值是19990320:10)。 通常,對(duì)它感興趣的是模塊的開發(fā)者。

THE_REQUEST

這是由瀏覽器發(fā)送的完整的HTTP請(qǐng)求行(比如:”GET /index.html HTTP/1.1″)。 它不包含任何瀏覽器發(fā)送的其它頭信息。

REQUEST_URI

這是在HTTP請(qǐng)求行中所請(qǐng)求的資源(比如上述例子中的”/index.html”)。

REQUEST_FILENAME

這是與請(qǐng)求相匹配的完整的本地文件系統(tǒng)的文件路徑名。

HTTPS

如果連接使用了SSL/TLS,它將包含字符串”on”,否則就是”off”(無(wú)論mod_ssl 是否已經(jīng)加載,該變量都可以安全的使用)。

其它注意事項(xiàng):

SCRIPT_FILENAME和 REQUEST_FILENAME包含的值是相同的——即Apache服務(wù)器內(nèi)部的request_rec結(jié)構(gòu)中的 filename字段。 第一個(gè)就是大家都知道的CGI變量名,而第二個(gè)則是REQUEST_URI(request_rec結(jié)構(gòu)中的uri字段)的一個(gè)副本。

  1. 特殊形式:%{ENV:variable} ,其中的variable可以是任意環(huán)境變量。 它是通過(guò)查找Apache內(nèi)部結(jié)構(gòu)或者(如果沒找到的話)由Apache服務(wù)器進(jìn)程通過(guò)getenv()得到的。
  2. 特殊形式:%{SSL:variable} ,其中的variable可以是一個(gè)SSL環(huán)境變量 的名字,無(wú)論mod_ssl 模塊是否已經(jīng)加載都可以使用(未加載時(shí)為空字符串)。 比如:%{SSL:SSL_CIPHER_USEKEYSIZE}將會(huì)被替換為128。
  3. 特殊形式:%{HTTP:header} ,其中的header可以是任意HTTP MIME頭的名稱。 它總是可以通過(guò)查找HTTP請(qǐng)求而得到。 比如:%{HTTP:Proxy-Connection}將被替換為Proxy-Connection:HTTP頭的值。
  4. 預(yù)設(shè)形式:%{LA-U:variable} ,variable的最終值在執(zhí)行一個(gè)內(nèi)部(基于URL的)子請(qǐng)求后確定。 當(dāng)需要使用一個(gè)目前未知但是會(huì)在之后的過(guò)程中設(shè)置的變量的時(shí)候,就可以使用這個(gè)方法。 例如,需要在服務(wù)器級(jí)配置(httpd.conf文件)中根據(jù)REMOTE_USER變量進(jìn)行重寫, 就必須使用%{LA-U:REMOTE_USER}。 因?yàn)榇俗兞渴怯蒛RL重寫(mod??_rewrite)步驟之后的認(rèn)證步驟設(shè)置的。 但是另一方面,因?yàn)閙od_rewrite是通過(guò)API修正步驟來(lái)實(shí)現(xiàn)目錄級(jí)(.htaccess文件)配置的, 而認(rèn)證步驟先于API修正步驟,所以可以用%{REMOTE_USER}。
  5. 預(yù)設(shè)形式:%{LA-F:variable} ,variable的最終值在執(zhí)行一個(gè)內(nèi)部(基于文件名的)子請(qǐng)求后確定。 大多數(shù)情況下和上述的LA-U是相同的。

●CondPattern是條件模式,即一個(gè)應(yīng)用于當(dāng)前TestString實(shí)例的正則表達(dá)式。TestString將被首先計(jì)算,然后再與CondPattern匹配。

注意:CondPattern是一個(gè)perl兼容的正則表達(dá)式,但是還有若干增補(bǔ):

1、可以在CondPattern串的開頭使用”!’(驚嘆號(hào))來(lái)指定 不匹配 。
2、CondPatterns有若干特殊的變種。 除了正則表達(dá)式的標(biāo)準(zhǔn)用法,還有下列用法:

將CondPattern視為純字符串,與TestString按詞典順序進(jìn)行比較。 如果TestString小于CondPattern則為真。
“>CondPattern”————-(詞典順序的大于)

將CondPattern視為純字符串,與TestString按詞典順序進(jìn)行比較。 如果TestString大于CondPattern則為真。
“=CondPattern”————-(詞典順序的等于)

將CondPattern視為純字符串,與TestString按詞典順序進(jìn)行比較。 如果TestString等于CondPattern(兩個(gè)字符串逐個(gè)字符地完全相等)則為真。

如果CondPattern是”"—(兩個(gè)雙引號(hào)),則TestString將與空字符串進(jìn)行比較。
“-d”————-(目錄)

將TestString視為一個(gè)路徑名并測(cè)試它是否為一個(gè)存在的目錄。
“-f “————-(常規(guī)文件)

將TestString視為一個(gè)路徑名并測(cè)試它是否為一個(gè)存在的常規(guī)文件。
“-s “————-(非空的常規(guī)文件)

將TestString視為一個(gè)路徑名并測(cè)試它是否為一個(gè)存在的、尺寸大于0的常規(guī)文件。
“-l “————-(符號(hào)連接)

將TestString視為一個(gè)路徑名并測(cè)試它是否為一個(gè)存在的符號(hào)連接。
“-x “————-(可執(zhí)行)

將TestString視為一個(gè)路徑名并測(cè)試它是否為一個(gè)存在的、具有可執(zhí)行權(quán)限的文件。 該權(quán)限由操作系統(tǒng)檢測(cè)。
“-F “————-(對(duì)子請(qǐng)求存在的文件)

檢查TestString是否為一個(gè)有效的文件,而且可以在服務(wù)器當(dāng)前的訪問(wèn)控制配置下被訪問(wèn)。 它使用一個(gè)內(nèi)部子請(qǐng)求來(lái)做檢查,由于會(huì)降低服務(wù)器的性能,所以請(qǐng)謹(jǐn)慎使用!
“-U “————-(對(duì)子請(qǐng)求存在的URL)

檢查TestString是否為一個(gè)有效的URL,而且可以在服務(wù)器當(dāng)前的訪問(wèn)控制配置下被訪問(wèn)。 它使用一個(gè)內(nèi)部子請(qǐng)求來(lái)做檢查,由于會(huì)降低服務(wù)器的性能,所以請(qǐng)謹(jǐn)慎使用!
注意: 所有這些測(cè)試都可以用驚嘆號(hào)作前綴(“!”)以實(shí)現(xiàn)測(cè)試條件的反轉(zhuǎn)。

●在CondPattern之后追加特殊的標(biāo)記[flags] 作為RewriteCond指令的第三個(gè)參數(shù)。flags是一個(gè)以逗號(hào)分隔的以下標(biāo)記的列表:

“nocase|NC”—————(忽略大小寫)

它使測(cè)試忽略大小寫,擴(kuò)展后的TestString和CondPattern中’AZ’ 和’a-z’是沒有區(qū)別的。 此標(biāo)記僅用于TestString和CondPattern的比較,而對(duì)文件系統(tǒng)和子請(qǐng)求的檢查不起作用。
“ornext|OR”—————(或下一條件)

代碼簡(jiǎn)寫全寫解釋
R[=code] redirect強(qiáng)制外部重定向
F forbidden禁用URL,返回403HTTP狀態(tài)碼。
G gone強(qiáng)制URL為已廢棄的
P proxy強(qiáng)制使用代理轉(zhuǎn)發(fā)。
L last表明當(dāng)前規(guī)則是最后一條規(guī)則,停止分析以后規(guī)則的重寫。
N next重新從第一條規(guī)則開始運(yùn)行重寫過(guò)程。
C chain與下一條規(guī)則關(guān)聯(lián)
如果規(guī)則匹配則正常處理,該標(biāo)志無(wú)效,如果不匹配,那么下面所有關(guān)聯(lián)的規(guī)則都跳過(guò)。
T=MIME-type type強(qiáng)制MIME類型
NS nosubreq只用于不是內(nèi)部子請(qǐng)
NC nocase不區(qū)分大小寫
QSA qsappend追加請(qǐng)求字符串
NE noescape不在輸出轉(zhuǎn)義特殊字符
PT passthrough傳遞給下一個(gè)處理
S=num skip跳過(guò)num條規(guī)則
E=VAR:VAL env設(shè)置環(huán)境變量
CO=NAME:VAL:domain[:lifetime[:path]] cookie設(shè)置cookie

redirect|R [=code] (強(qiáng)制重定向 redirect)

以 http://thishost[:thisport]/(使新的URL成為一個(gè)URI) 為前綴的Substitution可以強(qiáng)制性執(zhí)行一個(gè)外部重定向。 如果code沒有指定,則產(chǎn)生一個(gè)HTTP響應(yīng)代碼302(臨時(shí)性移動(dòng))。 如果需要使用在300-400范圍內(nèi)的其他響應(yīng)代碼,只需在此指定這個(gè)數(shù)值即可, 另外,還可以使用下列符號(hào)名稱之一: temp (默認(rèn)的), permanent, seeother. 用它可以把規(guī)范化的URL反饋給客戶端,如, 重寫“/~”為 “/u/”,或?qū)?u/user加上斜杠,等等。

注意: 在使用這個(gè)標(biāo)記時(shí),必須確保該替換字段是一個(gè)有效的URL! 否則,它會(huì)指向一個(gè)無(wú)效的位置! 并且要記住,此標(biāo)記本身只是對(duì)URL加上 http://thishost[:thisport]/的前綴,重寫操作仍然會(huì)繼續(xù)。 通常,你會(huì)希望停止重寫操作而立即重定向,則還需要使用’L’標(biāo)記.

forbidden|F (強(qiáng)制URL為被禁止的 forbidden)

強(qiáng)制當(dāng)前URL為被禁止的,即,立即反饋一個(gè)HTTP響應(yīng)代碼403(被禁止的)。 使用這個(gè)標(biāo)記,可以鏈接若干RewriteConds以有條件地阻塞某些URL。

gone|G’(強(qiáng)制URL為已廢棄的 gone)

強(qiáng)制當(dāng)前URL為已廢棄的,即,立即反饋一個(gè)HTTP響應(yīng)代碼410(已廢棄的)。 使用這個(gè)標(biāo)記,可以標(biāo)明頁(yè)面已經(jīng)被廢棄而不存在了.

proxy|P (強(qiáng)制為代理 proxy)

此標(biāo)記使替換成分被內(nèi)部地強(qiáng)制為代理請(qǐng)求,并立 即(即, 重寫規(guī)則處理立即中斷)把處理移交給代理模塊。 你必須確保此替換串是一個(gè)有效的(比如常見的以 http://hostname開頭的)能夠?yàn)锳pache代理模塊所處理的URI。 使用這個(gè)標(biāo)記,可以把某些遠(yuǎn)程成分映射到本地服務(wù)器名稱空間, 從而增強(qiáng)了ProxyPass指令的功能。

注意: 要使用這個(gè)功能,代理模塊必須編譯在Apache服務(wù)器中。 如果你不能確定,可以檢查“httpd -l”的輸出中是否有mod_proxy.c。 如果有,則mod_rewrite可以使用這個(gè)功能; 如果沒有,則必須啟用mod_proxy并重新編譯“httpd”程序。

last|L (最后一個(gè)規(guī)則 last)

立即停止重寫操作,并不再應(yīng)用其他重寫規(guī)則。 它對(duì)應(yīng)于Perl中的last命令或C語(yǔ)言中的break命令。 這個(gè)標(biāo)記可以阻止當(dāng)前已被重寫的URL為其后繼的規(guī)則所重寫。 舉例,使用它可以重寫根路徑的URL(’/’)為實(shí)際存在的URL, 比如, ‘/e/www/’.

next|N (重新執(zhí)行 next round)

重新執(zhí)行重寫操作(從第一個(gè)規(guī)則重新開始). 這時(shí)再次進(jìn)行處理的URL已經(jīng)不是原始的URL了,而是經(jīng)最后一個(gè)重寫規(guī)則處理的URL。 它對(duì)應(yīng)于Perl中的next命令或C語(yǔ)言中的continue命令。 此標(biāo)記可以重新開始重寫操作,即, 立即回到循環(huán)的頭部。
但是要小心,不要制造死循環(huán)!

chain|C (與下一個(gè)規(guī)則相鏈接 chained)

此標(biāo)記使當(dāng)前規(guī)則與下一個(gè)(其本身又可以與其后 繼規(guī)則相鏈接的, 并可以如此反復(fù)的)規(guī)則相鏈接。 它產(chǎn)生這樣一個(gè)效果: 如果一個(gè)規(guī)則被匹配,通常會(huì)繼續(xù)處理其后繼規(guī)則, 即,這個(gè)標(biāo)記不起作用;如果規(guī)則不能被匹配, 則其后繼的鏈接的規(guī)則會(huì)被忽略。比如,在執(zhí)行一個(gè)外部重定向時(shí), 對(duì)一個(gè)目錄級(jí)規(guī)則集,你可能需要?jiǎng)h除“.www” (此處不應(yīng)該出現(xiàn)“.www”的)。

type|T=MIME-type(強(qiáng)制MIME類型 type)

強(qiáng)制目標(biāo)文件的MIME類型為MIME-type。 比如,它可以用于模擬mod_alias中的ScriptAlias指令, 以內(nèi)部地強(qiáng)制被映射目錄中的所有文件的MIME類型為“application/x-httpd-cgi”。

nosubreq|NS (僅用于不對(duì)內(nèi)部子請(qǐng)求進(jìn)行處理 no internal sub-request)

在當(dāng)前請(qǐng)求是一個(gè)內(nèi)部子請(qǐng)求時(shí),此標(biāo)記強(qiáng)制重寫 引擎跳過(guò)該重寫規(guī)則。 比如,在mod_include試圖搜索可能的目錄默認(rèn)文件(index.xxx)時(shí), Apache會(huì)內(nèi)部地產(chǎn)生子請(qǐng)求。對(duì)子請(qǐng)求,它不一定有用的,而且如果整個(gè)規(guī)則集都起作用, 它甚至可能會(huì)引發(fā)錯(cuò)誤。所以,可以用這個(gè)標(biāo)記來(lái)排除某些規(guī)則。

根據(jù)你的需要遵循以下原則: 如果你使用了有CGI腳本的URL前綴,以強(qiáng)制它們由CGI腳本處理, 而對(duì)子請(qǐng)求處理的出錯(cuò)率(或者開銷)很高,在這種情況下,可以使用這個(gè)標(biāo)記。

nocase|NC (忽略大小寫 no case)

它使Pattern忽略大小寫,即, 在Pattern與當(dāng)前URL匹配時(shí),’A-Z’ 和’a-z’沒有區(qū)別。

qsappend|QSA (追加請(qǐng)求串 query string append)

此標(biāo)記強(qiáng)制重寫引擎在已有的替換串中追加一個(gè)請(qǐng)求串,而不是簡(jiǎn)單的替換。 如果需要通過(guò)重寫規(guī)則在請(qǐng)求串中增加信息,就可以使用這個(gè)標(biāo)記。

noescape|NE (在輸出中不對(duì)URI作轉(zhuǎn)義 no URI escaping)

此標(biāo)記阻止mod_rewrite對(duì)重寫結(jié)果應(yīng)用常規(guī)的URI轉(zhuǎn)義規(guī)則。 一般情況下,特殊字符(如’%’, ‘$’, ‘;’等)會(huì)被轉(zhuǎn)義為等值的十六進(jìn)制編碼。 此標(biāo)記可以阻止這樣的轉(zhuǎn)義,以允許百分號(hào)等符號(hào)出現(xiàn)在輸出中,如:

RewriteRule /foo/(.*) /bar?arg=P1\=$1 [R,NE] 可以使’/foo/zed’轉(zhuǎn)向到一個(gè)安全的請(qǐng)求’/bar?arg=P1=zed’.

passthrough|PT (移交給下一個(gè)處理器 pass through)

此標(biāo)記強(qiáng)制重寫引擎將內(nèi)部結(jié)構(gòu) request_rec中的uri字段設(shè)置為 filename字段的值,它只是一個(gè)小修改,使之能對(duì)來(lái)自其他URI到文件名翻譯器的 Alias,ScriptAlias, Redirect 等指令的輸出進(jìn)行后續(xù)處理。舉一個(gè)能說(shuō)明其含義的例子: 如果要通過(guò)mod_rewrite的重寫引擎重寫/abc為/def, 然后通過(guò)mod_alias使/def轉(zhuǎn)變?yōu)?ghi,可以這樣:

RewriteRule ^/abc(.*) /def$1 [PT]Alias /def /ghi

如果省略了PT標(biāo)記,雖然mod_rewrite運(yùn)作正常, 即, 作為一個(gè)使用API的URI到文件名翻譯器, 它可以重寫uri=/abc/…為filename=/def/…, 但是,后續(xù)的mod_alias在試圖作URI到文件名的翻譯時(shí),則會(huì)失效。

注意: 如果需要混合使用不同的包含URI到文件名翻譯器的模塊時(shí), 就必須使用這個(gè)標(biāo)記。。 混合使用mod_alias和mod_rewrite就是個(gè)典型的例子。

For Apache hackers

如果當(dāng)前Apache API除了URI到文件名hook之外,還有一個(gè)文件名到文件名的hook, 就不需要這個(gè)標(biāo)記了! 但是,如果沒有這樣一個(gè)hook,則此標(biāo)記是唯一的解決方案。 Apache Group討論過(guò)這個(gè)問(wèn)題,并在Apache 2.0 版本中會(huì)增加這樣一個(gè)hook。

skip|S=num (跳過(guò)后繼的規(guī)則 skip)

此標(biāo)記強(qiáng)制重寫引擎跳過(guò)當(dāng)前匹配規(guī)則后繼的num個(gè)規(guī)則。 它可以實(shí)現(xiàn)一個(gè)偽if-then-else的構(gòu)造: 最后一個(gè)規(guī)則是then從句,而被跳過(guò)的skip=N個(gè)規(guī)則是else從句. (它和’chain|C’標(biāo)記是不同的!)

env|E=VAR:VAL (設(shè)置環(huán)境變量 environment variable)

此標(biāo)記使環(huán)境變量VAR的值為VAL, VAL可以包含可擴(kuò)展的反向引用的正則表達(dá)式$N和%N。 此標(biāo)記可以多次使用以設(shè)置多個(gè)變量。 這些變量可以在其后許多情況下被間接引用,但通常是在XSSI (via ) or CGI (如 $ENV{’VAR’})中, 也可以在后繼的RewriteCond指令的pattern中通過(guò)%{ENV:VAR}作引用。 使用它可以從URL中剝離并記住一些信息。

cookie|CO=NAME:VAL:domain[:lifetime[:path]] (設(shè)置cookie)

它在客戶端瀏覽器上設(shè)置一個(gè)cookie。 cookie的名稱是NAME,其值是VAL。 domain字段是該cookie的域,比如’.apache.org’, 可選的lifetime是cookie生命期的分鐘數(shù), 可選的path是cookie的路徑。

●舉例說(shuō)明RewriteCond命令規(guī)則

RewriteCond %{REMOTE_HOST} ^ [OR]
RewriteCond %{REMOTE_HOST} ^*.
RewriteRule …針對(duì)這2個(gè)主機(jī)的規(guī)則集

RewriteCond % { HTTP_USER_AGENT }  ^Mozilla.*
RewriteRule ^/$ /homepage. max .html  [ L ]
如果你使用的瀏覽器識(shí)別標(biāo)志是’Mozilla’,則你將得到內(nèi)容最大化的主頁(yè)homepage. max .html(含有Frames等等)。

RewriteRule指令格式

【說(shuō)明】定義重寫的規(guī)則
【語(yǔ)法】RewriteRule Pattern rewritePattern [flags]

RewriteRule指令,可以定義一條重寫 規(guī)則,規(guī)則間的順序非常重要。對(duì)Apache1.2及以后的版本,模板(Pattern)是一個(gè)POSIX正則式,用以匹配當(dāng)前的URL。當(dāng)前的URL不 一定是最初提交的URL,因?yàn)榭赡苡靡恍┮?guī)則在此規(guī)則前已經(jīng)對(duì)URL進(jìn)行了處理。rewritePattern 大多數(shù)文章寫為Substitution ,這里為了更清楚的認(rèn)識(shí)故寫為rewritePattern 。

●Pattern 可以使用如下特殊匹配規(guī)則,如php等其他語(yǔ)言類似。

“.” ——————- 換行符以外的所有字符
“\w” —————- 匹配字母或數(shù)字或下劃線或漢字
“\s” —————– 匹配任意的空白符
“\d” —————– 匹配數(shù)字
“\b” —————– 匹配單詞的開始或結(jié)束
“^” —————— 匹配字符串的開始
“$” —————— 匹配字符串的結(jié)束
“*” —————— 重復(fù)零次或更多次
“+” —————— 重復(fù)一次或更多次
“?” ——————- 重復(fù)零次或一次
“{n}” —————- 重復(fù)n次
“{n,}” ————— 重復(fù)n次或更多次
“{n,m}” ————- 重復(fù)n到m次
“[0-9]” ————– 匹配單個(gè)數(shù)字

rewritePattern 是針對(duì)Pattern 匹配后的URL進(jìn)行rewritePattern 規(guī)定的替換。應(yīng)用替換時(shí),前面Pattern 第一個(gè)()中匹配的內(nèi)容后面rewritePattern 就可以用$1引用,第二個(gè)()中匹配的就用$2應(yīng)用……以此類推。

●在rewritePattern 之后追加特殊的標(biāo)記[flags] 作為RewriteRule 指令的第三個(gè)參數(shù)。flags可以使用的標(biāo)記,和上面RewriteCond使用的一樣。

●舉例說(shuō)明RewriteRule語(yǔ)法

RewriteRule index.html index.php

比如:http://www./index.html  -> http://www./index.php

RewriteRule ^test([0-9]*).html$ test.php?id=$1

比如:http://www./test8.html  -> http://www./test.php?id=8

RewriteRule ^cat-([0-9]+)-([0-9]+)\.html$ cat.php?id1=$1&id2=$2

比如:http://www./cat-1-3.html -> http://www./cat.php?id1=1&id2=3

RewriteRule ^cat-([a-zA-Z0-9\-]*)-([0-9]+)-([0-9]+)\.html$ cat.php?id0=$1&id1=$2&id2=$3

比如:http://www./cat-zbc2ac-3-5.html -> http://www./cat.php?id0=zbc2ac&id1=3&id2=5

RewriteRule ^cat1-([0-9]+)-([0-9]+)-([0-9]+)\.html$ cat1.php?id1=$1&id2=$2&id3=$3

比如:http://www./cat1-4-3-8.html -> http://www./cat1.php?id1=4&id2=3&id3=8

RewriteRule ^cat([0-9]*)/$ cat.php?id1=$1

比如:http://www./cat5/ -> http://www./cat.php?id1=5

RewriteRule ^catm([0-9]*)/([0-9]*)/$ catm.php?id1=$1&id2=$2

比如:http://www./catm6/3/ -> http://www./catm.php?id1=6&id2=3


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多