


Apache重寫規(guī)則實(shí)例說明和應(yīng)用
一、為什么需要用重寫規(guī)則
網(wǎng)站的生命在于不斷地進(jìn)行更新和維護(hù),根據(jù)業(yè)務(wù)發(fā)展的需求轉(zhuǎn)移服務(wù)器進(jìn)行維護(hù)、重新組織目錄結(jié)構(gòu)、變換URL甚至改變到新的域名等情況是經(jīng)常發(fā)生的。為了讓客戶不會(huì)因此受到任何影響,最好的方法就是使用Apache Rewrite Rule(重寫規(guī)則)。二、重寫規(guī)則的作用范圍
1.使用在Apache主配置文件httpd.conf中。2.使用在httpd.conf里定義的虛擬主機(jī)配置中。
3.使用在基礎(chǔ)目錄的跨越配置文件.htaccess中。
三、重寫規(guī)則的應(yīng)用條件
當(dāng)用戶的Web請求最終被導(dǎo)向到某臺(tái)Web服務(wù)器的Apache守護(hù)進(jìn)程,Apache根據(jù)配置文件判斷該請求是主配置還是虛擬主機(jī),再根據(jù)用戶在瀏覽器中請求的URL來匹配重寫規(guī)則,并且根據(jù)實(shí)際的請求路徑匹配.htaccess中的重寫規(guī)則,最后把請求的內(nèi)容傳回給用戶。該響應(yīng)可能有2種。
1.將請求內(nèi)容外部重定向(Redirect)到另一個(gè)URL
讓瀏覽器再次以新的URL發(fā)出請求(R=301或者R=302,臨時(shí)的或是永久的重定向)。
例如,一個(gè)網(wǎng)站有正規(guī)的URL和別名URL,對別名URL進(jìn)行重定向到正規(guī)URL,或者網(wǎng)站改換成了新的域名,則把舊的域名重定向到新的域名。
2.由Apache內(nèi)部子請求代理產(chǎn)生新的內(nèi)容送回給客戶[P,L]
這是Apache內(nèi)部根據(jù)重寫后的URL,通過代理模塊請求內(nèi)容并將最終內(nèi)容送回給客戶,客戶端瀏覽器不必再次請求,瀏覽器中的URL不會(huì)被重寫,但實(shí)際內(nèi)容由Apache根據(jù)重寫規(guī)則后的URL生成。
例如,在公司防火墻上運(yùn)行的Apache啟動(dòng)這種代理重寫規(guī)則,代理對內(nèi)部網(wǎng)段上的Web服務(wù)器的請求。
fasdfadsf
四、重寫規(guī)則怎樣工作我們假定在編譯Apache時(shí)已經(jīng)把mod_rewrite編譯成模塊,確信您的httpd.conf中有LoadModule rewrite_module libexec/mod_rewrite.so,并且在Addmodule中有Addmodule mod_rewrite.c,則可以使用重寫規(guī)則。
當(dāng)外部請求到達(dá)Apache,Apache調(diào)用重寫規(guī)則中的定義來重寫由用戶瀏覽器指定請求的URL,最后被重寫的URL如果是重定向,則送交瀏覽器做再一次請求;如果是代理則把重寫后的URL交給代理模塊請求最終的內(nèi)容(Content),最后把內(nèi)容送回給瀏覽器。
五、何時(shí)使用.htaccess中的重寫規(guī)則定義
假如您對網(wǎng)站內(nèi)容所在的服務(wù)器沒有管理員權(quán)限,或者您的網(wǎng)站內(nèi)容放在ISP的服務(wù)器上托管,無法改寫主配置文件,但是您對Web站點(diǎn)內(nèi)容所在的目錄有寫權(quán)限,則可以設(shè)置自己的.htaccess文件達(dá)到同樣的目的。但您需要確定主配置文件中對您的網(wǎng)站所在的目錄定義了下面的內(nèi)容,否則您的.htaccess不會(huì)工作。
關(guān)鍵字:Apache 重寫 規(guī)則 說明 應(yīng)用
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解