IIS 實現資源永久重定向(301)的常見引數

fanhongjie發表於2011-02-11

轉自:

如果把及其下屬任意URL(如:http:///thread-197974-1-1.html)精確永久重定向到及其下屬URL(如:http:///thread-197974-1-1.html)操作步驟如下:

[@more@]

* 開啟internet資訊服務管理器,在欲重定向的網頁或目錄上按右鍵

* 選擇“重定向到URL”

* 在“重定向到”輸入框中輸入要跳轉到的目標網頁的URL地址http://$S$Q

* 選中“上面輸入的準確URL”

* 選中“資源的永久重定向”(切記)

* 最後點選“應用”

網站更換域名,把舊域名用301指到新域名來。

從iis中設定url永久轉向就可以,看上去很容易,用了一會兒才發現,引數都沒有帶上。

從微軟網站上找到如下說明:

重定向參考 (IIS 6.0)

重定向客戶端請求是確保使用者得到正確頁面的一種方法,它適用於站點正在建設之中或已改變標識的情況。您可以將客戶端請求重定向到同一
Web 伺服器上的某個目錄,或者重定向到另一個 URL。

配置 URL 和萬用字元重定向

可以採用程式設計方式配置重定向到 URL 以及萬用字元重定向。使用重定向變數和標誌可以透過更改 HttpRedirect 配置資料庫屬性來指定目標和行為。

以下示例顯示了一個簡單重定向字串的格式。

[,Flag[s]]

其中,DestinationURL 可以包括以下重定向變數,以將初始 URL 中相關的部分傳遞給目標
URL。在單個重定向字串中可以使用多個變數。

變數描述示例
$S將請求的 URL 的字尾傳遞給新的 URL。字尾是用重定向的 URL 代替之後,初始 URL 中所保留的部分。如果未設定 EXACT_DESTINATION 標誌,則結果目標 URL 的名稱將具有所請求檔案的名稱(作為資料夾名稱)以及檔名本身。如果對映到以下網站的虛擬目錄:配置為重定向到以下確切的 URL:

對以下 URL 的新請求:

/Program.exe

將自動重定向至以下 URL:

$P將初始 URL 中的引數(如 querystring 引數)傳遞至新的 URL,不包括問號 (?)。如果對映到以下網站的虛擬目錄:配置為重定向到以下 URL:

對以下 URL 的新請求:

/File.asp?var1=5&var2=6

將自動重定向至以下 URL:

$Q將初始 URL 中的引數(如 querystring 引數)傳遞至新的 URL,包括問號 (?)。如果對映到以下網站的虛擬目錄:配置為重定向到以下確切的 URL:

$Q

對以下 URL 的新請求:

/File.asp?var1=5&var2=6

將自動重定向至以下 URL:

$V傳遞請求的 URL,不包括伺服器名和任何引數。要包含引數,可使用 $P 或 $Q 變數及 $V 變數。如果未設定 EXACT_DESTINATION 標誌,則結果目標 URL 的名稱將具有所請求檔案的名稱(作為資料夾名稱)以及檔名本身。如果對映到以下網站的虛擬目錄:配置為重定向到以下確切的 URL:

對以下 URL 的新請求:

/File.asp

將自動重定向至以下 URL:

使用萬用字元重定向

可以使用重定向萬用字元匹配原來 URL 中的任意數目的字元。目標 URL 以星號 (*) 和分號 (;) 開頭,成對的萬用字元和目標 URL
之間用分號分隔。以下示例顯示了一個使用萬用字元的重定向字串的格式。

*; Wildcard1; Destination1[; Wildcard2; Destination2][, Flags]

其中,WildcardN 可以包括星號 (*) 以匹配初始 URL 中任何數量的字元,並使用下表中定義的變數($0 到 $9)將這些字元傳遞給
DestinationN。

變數描述示例
$0 到 $9傳遞被請求的 URL 中與指定的萬用字元相匹配的部分。對於每個 Wildcard;Destination 集,萬用字元必須從 $0
開始。重定向字串必須附加 EXACT_DESTINATION 標誌。
如果對映到以下網站的虛擬目錄:使用以下重定向字串進行配置:

*; /Scripts/*_in.asp; /NewScripts/$0.dll; /Scripts/*_out.asp;

對以下 URL 的新請求:

/data_in.asp

/data_out.asp

將分別自動重定向至以下 URL:

!不允許重定向。如果當父目錄配置為重定向時要使檔案或子目錄不被重定向,那麼可以使用該變數。如果對映到以下網站的虛擬目錄:配置為重定向到以下網站之外的位置:

/Commerce/Accounts

則必須免除重定向,以程式設計方式將被免除資料夾的重定向字串設定為:

*;!

例如,要將所有對 /Scripts/Filename.stm 的請求重定向到名為 Default.stm 的檔案,並將所有對
/Scripts/Filename.htm 的請求重定向到 Default.htm 檔案,請對 /Scripts 虛擬目錄使用以下重定向請求:

*;Filename.stm;/Default.stm/Filename.htm;/Default.htm

使用重定向標誌

以下標誌用於擴充 URL 或萬用字元格式的重定向字串。允許多個標誌。標誌以程式設計方式附加到 HttpRedirect 中的重定向字串中,或透過選中“IIS
管理器”中的核取方塊進行配置。

標誌使用者介面核取方塊描述
EXACT_DESTINATION上面輸入的準確 URL表示為 Destination 提供的值應被視作絕對目標位置。
CHILD_ONLY該目錄以下的目錄通知 IIS 應只發生一次重定向,因為目標位置為初始 URL 的子目錄。此標誌避免了迴圈。並且,僅當請求是重定向到初始 URL
的子資料夾或檔案時,此標誌才指示 IIS 重定向該請求。
PERMANENT資源的永久重定向表示永久重定向該資源。
TEMPORARY清除“資源的永久重定向”核取方塊表示暫時重定向該資源。

綜述:實現網站的整體301跳轉,設定 iis站點屬性》主目錄》重定向到URl 寫入$S$Q
並且選中上面輸入的準確URL和資源的永久重定向。即可使舊域名的網址引數完整傳遞到新的域名。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/73920/viewspace-1045827/,如需轉載,請註明出處,否則將追究法律責任。

相關文章