apache重寫規則

2021-08-25 01:56:40 字數 1657 閱讀 7857

本文旨在提供如何用apache重寫規則來解決一些常見的url重寫方法的問題,通過常見的

例項給使用者一些使用重寫規則的基本方法和線索。

二:為什麼需要用重寫規則?

乙個**,如果是長期需要放在internet上提供服務,必定會有不斷地更新和維護,如臨

時轉移到其它伺服器進行維護,重新組織目錄結構,變換url甚至改變到新的網域名稱等等,

而為了讓客戶不會因此受到任何影響,最好的方法就是使用apache rewrite rule(重寫

規則)。

三: 重寫規則的作用範圍

1) 可以使用在apache主配置檔案httpd.conf中

2) 可以使用在httpd.conf裡定義的虛擬主機配置中

3) 可以使用在基本目錄的跨越配置檔案.htaccess中

四:重寫規則的應用條件

只有當使用者的web請求最終被導向到某台web伺服器的apache後台,則這台web伺服器接受

進來的請求,根據配置檔案該請求是主配置還是虛擬主機,再根據使用者在瀏覽器中請求的

uri來配對重寫規則並且根據實際的請求路徑配對.htaccess中的重寫規則。最後把請求

的內容傳回給使用者,該響應可能有兩種:

1) 對瀏覽器請求內容的外部重定向(redirect)到另乙個url。

讓瀏覽器再次以新的uri發出請求(r=301或者r=302,臨時的或是永久的重定向)

成了新的網域名稱

則把舊的網域名稱重定向到新的網域名稱(redirect)

2) 也可能是由apache內部子請求**產生新的內容送回給客戶[p,l]

這是apache內部根據重寫後的uri內部通過**模組請求內容並送回內容給客戶,而客戶

端瀏覽器並

不知道,瀏覽器中的uri不會被重寫。但實際內容被apache根據重寫規則後的uri得到。

如:在公司防火牆上執行的apache啟動這種**重寫規則,**對內部網段上的web服務

器的請求。

五:重寫規則怎樣工作?

我們假定在編譯apache時已經把mod_rewrite編譯成模組,確信你的httpd.conf中有

loadmodule rewrite_module libexec/mod_rewrite.so

並且在addmodule中有

addmodule mod_rewrite.c

則可以使用重寫規則。

當外部請求來到apache,apache呼叫重寫規則中的定義來重寫由使用者瀏覽器指定請求的

uri,最後被重寫的uri如果是重定向,則送由瀏覽器作再一次請求;如果是**則把重寫

後的uri交給**模組請求最終的內容(content),最後把內容送回給瀏覽器。

六: 何時使用.htaccess中的重寫規則定義?

假如你對你的的**內容所在的伺服器沒有管理員許可權,或者你的**放在isp的伺服器

上託管等等條件下,你無法改寫主配置檔案,然而你可以對你的web站點內容所在的目錄

有寫許可權,則你可以設定自己的.htaccess

檔案達到同樣的目的。但你需要確定主配置檔案中對你的**所在的目錄定義了下面的內

容: options indexes followsymlinks

allowoverride all

否則你的.htaccess不會工作。

Apache重寫規則解析

htaccess的主要作用就是實現url改寫,也就是當瀏覽器通過url訪問到伺服器某個資料夾時,作為主人,我們可以來接待這個url,具體地怎樣接待它,就是此檔案的作用。所有的訪問都是通過url實現,所以.htaccess的作用非同小可。正因為此,所以一般地 通過設 置.htaccess,通過乙個十分...

apache重寫規則簡單理解

1 前提 開啟apache重寫,並把httpd.conf裡的相關的allowoverride denied改為allowoverride all 2 重寫規則可寫在專案根目錄的.htaccess檔案或直接配在httpd.conf 3 規則的三個重點 rewriteengine on 開啟引擎 rew...

Apache的URL重寫規則的標誌詳細說明

apache的url重寫規則的標誌詳細說明 1 r code force redirect 強制外部重定向 強制在替代字串加上http thishost thisport 字首重定向到外部的url.如果code不指定,將用預設的302 http狀態碼。2 f force url to be forb...