Apache 重定向配置方法

2021-04-15 16:37:02 字數 3041 閱讀 9278

今天的support內容需要測試apache 頁面重定向,簡單的說就是配置apache讓它自動把舊的url位址轉換成新的url輸出。 

apache模組 mod_rewrite說明

說明:提供了乙個基於規則的實時轉向url請求的引擎

狀態:extension

模組名:

rewrite_module

原始檔:

mod_rewrite.c

相容性:

包含在apache 1.3及其更新版本中

#開啟rewrite模組

rewriteengine on  

#設定log的輸出位置()

rewritelog 

"f:/local/apache2.2/logs/rewrite.log"

#舉例:替換page.jsp?id

= 30800為新位址http://localhost/webadmin/index.jsp

] 常用指令:

語法:rewritebase url-path

rewritebase指令顯式地設定了目錄級重寫的基準url。預設值是,rewritebasephysical-directory-path

在對乙個新的url進行替換時,此模組必須把這個url重新注入到伺服器處理中。 為此,它必須知道其對應的url字首或者說url基準。通常,此字首就是對應的檔案路徑。但是,大多數**url不是直接對應於其物理檔案路徑的,因而一般不能做這樣的假定!所以在這種情況下,就必須用rewritebase指令來指定正確的url字首。

rewriteengine on

#  let the server know that we were reached via /xyz and not

#  via the physical path prefix /abc/def

rewritebase   /xyz

語法:rewritecond teststring

condpattern

rewritecond指令定義了乙個規則的條件,即,在乙個rewriterule指令之前有乙個或多個rewritecond指令。 條件之後的重寫規則僅在當前uri與pattern匹配並且符合這些條件的時候才會起作用。

teststring是乙個純文字的字串,但是還可以包含下列可擴充套件的成分。condpattern是條件pattern, 即, 乙個應用於當前例項teststring的正規表示式, 即, teststring將會被計算然後與condpattern匹配.

rewritecond  %  ^mozilla.*

rewriterule  ^/$                 /homepage.max.html  [l

]rewritecond  %  ^lynx.*

rewriterule  ^/$                 /homepage.min.html  [l

]rewriterule  ^/$                 /homepage.std.html  [l

]語法:rewriteengine on|off

rewriteengine指令開啟或關閉執行時刻的重寫引擎。 如果設定為off,則此模組不執行任何執行時刻的重寫操作, 甚至也不更新script_urx環境變數。使用該指令可以使此模組無效,而無須注釋所有的rewriterule指令!

注意:預設情況下,重寫配置是不可繼承的, 即,必須在每個需要的虛擬主機中設定乙個rewriteengine on指令。

語法:rewritelog file-path

rewritelog指令設定用於記錄所有重寫操作的檔案的名稱。 如果此檔名不是以斜槓('/')開頭,則它是相對於server root的。 此指令應該僅僅出現在伺服器級配置中。

如果要關閉對重寫操作的記錄,不推薦把

filename設定為/dev/null, 因為,雖然重寫引擎不能輸出記錄了,但仍會內部地建立這個日誌檔案,它會使伺服器速度降低,而且對管理員毫無益處!要關閉日誌,可以刪除或註解rewritelog指令, 或者使用rewriteloglevel 0!

rewritelog 

"/usr/local/var/apache/logs/rewrite.log

" 語法:rewriteloglevel level

rewriteloglevel指令設定重寫引擎日誌的詳細程度的級別。 預設級別0意味著不記錄,而9或更大的值意味著記錄所有的操作。

要關閉重寫引擎日誌,可以簡單地設此值為0,關閉所有的重寫操作記錄。使用較高的level值會使apache伺服器速度急劇下降! 重寫日誌使用大於2的level值只用於除錯!

rewriteloglevel 3

語法:rewriterule pattern

substitution

rewriterule指令是重寫引擎的根本。此指令可以多次使用。 每個指令定義乙個簡單的重寫規則。這些規則的定義順序尤為重要, 因為,在執行時刻,規則是按這個順序逐一生效的.

pattern

是乙個作用於當前url的相容perl的正規表示式. 這裡的``當前''是指該規則生效時的url的值。 它可能與被請求的url不同,因為其他規則可能在此之前已經發生匹配並對它做了改動。

[

flags]

apache配置 重定向

1 http協議 2 apache伺服器 第一種方式 安裝多個apache 第二種方式 乙個網絡卡繫結多個ip 1 新增ip位址 本地連線 tcp ip屬性 高階 新增 192.168.52.107 192.168.52.108 2 http.conf下 options indexes follow...

apache做301重定向的方法

方法一 加在httpd.conf 1 這裡我使用mod rewrite重寫url的方式來做,做之前朋友記得檢查一下你的apache是否已經載入了rewrite模組。如圖所示的那個模組,在apahce的httpd.conf檔案裡面檢視 2 如果已經支援了rewrite,直接在你要做的站點配置檔案裡面新...

apache 301重定向配置的例子

apache下301重定向 windows 2003 apache 本文僅限apache伺服器使用。新建.url 檔案,輸入下列內容 需要開啟mod rewrite 1 將不帶www的網域名稱轉向到帶www的網域名稱下 options followsymlinks rewriteengine on ...