win2003下IIS6服務(wù)器301重定向帶參數(shù)的問題詳細(xì)解決方法
網(wǎng)站更換域名,把舊域名用301指到新域名來。從iis中設(shè)置url永久轉(zhuǎn)向就可以,看上去很容易,用了一會(huì)兒才發(fā)現(xiàn),參數(shù)都沒有帶上。
從微軟網(wǎng)站上找到如下說明,果然好使:
IIS 301重定向設(shè)置
通過本次設(shè)置IIS的重定向,感覺還是比較方便的。下面就說一下IIS的重定向方法,因?yàn)榫W(wǎng)站改版是面向目錄的遷移的,所以不得不了解以下幾個(gè)微軟的IIS定向參數(shù):
我們在設(shè)置URL重定向的時(shí)候是可以使用帶參數(shù)形式URL的,因?yàn)楫吘菇?jīng)常面對的URL是很多,要是就那么一兩個(gè)頁面301重定向隨便怎么整都可以了。
參數(shù)1:$S ——傳遞URL的后綴到新的URL;
參數(shù)2:$P——傳遞URL 中的query參數(shù)到新的URL,不包括問號(?)
參數(shù)3:$Q——傳遞URL中的query參數(shù)到新的URL,包括問號(?),所以在設(shè)置URL地址時(shí),后面不要帶問號,比如:
將http://www.iisp.com/catalog.asp?cate=os&page=1,重定向到http://www.iisp.com/category.php?cate=1&page=1只需要在IIS里設(shè)置catelog.asp文件設(shè)置重定向到 category.php$Q。
參數(shù)4:$V——傳遞請求的URL,但是不包括服務(wù)器名和任何參數(shù)。
另外還有使用通配符重定向,這里不常用暫時(shí)不講解。因?yàn)槲覀冎囟ㄏ蚨鄠(gè)目錄,所以,如果單個(gè)去設(shè)置不同的定向文件,那么IIS設(shè)置起來將會(huì)非常麻煩,但是如果都定向到一個(gè)文件然后再重定向,又會(huì)因?yàn)?_SERVER['HTTP_REFERER']無法取道對應(yīng)的引用頁面,結(jié)果為空,所以不得不采用上面的參數(shù)進(jìn)行傳遞,這時(shí)候只需要加個(gè)參數(shù)就可以解決引用頁面的傳遞問題,比如/301.php?go=$V,這樣就可以直接在php文件中進(jìn)行URL 301重定向跳轉(zhuǎn)處理了。
重定向參考 (IIS 6.0)
重定向客戶端請求是確保用戶得到正確頁面的一種方法,它適用于站點(diǎn)正在建設(shè)之中或已改變標(biāo)識的情況。您可以將客戶端請求重定向到同一 Web 服務(wù)器上的某個(gè)目錄,或者重定向到另一個(gè) URL。
配置 URL 和通配符重定向
可以采用編程方式配置重定向到 URL 以及通配符重定向。使用重定向變量和標(biāo)志可以通過更改 HttpRedirect 配置數(shù)據(jù)庫屬性來指定目標(biāo)和行為。
以下示例顯示了一個(gè)簡單重定向字符串的格式。
http://DestinationURL[,Flag[s]]
其中,DestinationURL 可以包括以下重定向變量,以將初始 URL 中相關(guān)的部分傳遞給目標(biāo) URL。在單個(gè)重定向字符串中可以使用多個(gè)變量。
變量 | 描述 | 示例 |
$S |
將請求的 URL 的后綴傳遞給新的 URL。后綴是用重定向的 URL 代替之后,初始 URL 中所保留的部分。 如果未設(shè)置 EXACT_DESTINATION 標(biāo)志,則結(jié)果目標(biāo) URL 的名稱將具有所請求文件的名稱(作為文件夾名稱)以及文件名本身。 |
如果映射到以下網(wǎng)站的虛擬目錄: http://fabrikam/Scripts 配置為重定向到以下確切的 URL: http://fabrikam/NewScripts$S 對以下 URL 的新請求: http://fabrikam/Scripts/Program.exe 將自動(dòng)重定向至以下 URL: http://fabrikam/NewScripts/Program.exe |
$P |
將初始 URL 中的參數(shù)(如 querystring 參數(shù))傳遞至新的 URL,不包括問號 (?)。 |
如果映射到以下網(wǎng)站的虛擬目錄: http://fabrikam/Scripts 配置為重定向到以下 URL: http://fabrikam/NewScripts$P 對以下 URL 的新請求: http://fabrikam/Scripts/File.asp?var1=5&var2=6 將自動(dòng)重定向至以下 URL: http://fabrikam/NewScriptsvar1=5&var2=6 |
$Q |
將初始 URL 中的參數(shù)(如 querystring 參數(shù))傳遞至新的 URL,包括問號 (?)。 |
如果映射到以下網(wǎng)站的虛擬目錄: http://fabrikam/Scripts 配置為重定向到以下確切的 URL: http://fabrikam/NewScripts$S$Q 對以下 URL 的新請求: http://fabrikam/Scripts/File.asp?var1=5&var2=6 將自動(dòng)重定向至以下 URL: http://fabrikam/NewScripts/File.asp?var1=5&var2=6 |
$V |
傳遞請求的 URL,不包括服務(wù)器名和任何參數(shù)。要包含參數(shù),可使用 $P 或 $Q 變量及 $V 變量。 如果未設(shè)置 EXACT_DESTINATION 標(biāo)志,則結(jié)果目標(biāo) URL 的名稱將具有所請求文件的名稱(作為文件夾名稱)以及文件名本身。 |
如果映射到以下網(wǎng)站的虛擬目錄: http://fabrikam/Scripts 配置為重定向到以下確切的 URL: http://contoso$V 對以下 URL 的新請求: http://fabrikam/Scripts/File.asp 將自動(dòng)重定向至以下 URL: http://contoso/Scripts/File.asp |
使用通配符重定向
可以使用重定向通配符匹配原來 URL 中的任意數(shù)目的字符。目標(biāo) URL 以星號 (*) 和分號 (;) 開頭,成對的通配符和目標(biāo) URL 之間用分號分隔。以下示例顯示了一個(gè)使用通配符的重定向字符串的格式。
*; Wildcard1; Destination1[; Wildcard2; Destination2][, Flags]
其中,WildcardN 可以包括星號 (*) 以匹配初始 URL 中任何數(shù)量的字符,并使用下表中定義的變量($0 到 $9)將這些字符傳遞給 DestinationN。
變量 | 描述 | 示例 |
$0 到 $9 |
傳遞被請求的 URL 中與指定的通配符相匹配的部分。對于每個(gè) Wildcard;Destination 集,通配符必須從 $0 開始。重定向字符串必須附加 EXACT_DESTINATION 標(biāo)志。 |
如果映射到以下網(wǎng)站的虛擬目錄: http://fabrikam/Scripts 使用以下重定向字符串進(jìn)行配置: *; /Scripts/*_in.asp; /NewScripts/$0.dll; /Scripts/*_out.asp; http://contoso/NewScripts/$0.dll 對以下 URL 的新請求: http://fabrikam/Scripts/data_in.asp http://fabrikam/Scripts/data_out.asp 將分別自動(dòng)重定向至以下 URL: http://fabrikam/NewScripts/data.dll http://contoso/NewScripts/data.dll |
! |
不允許重定向。 如果當(dāng)父目錄配置為重定向時(shí)要使文件或子目錄不被重定向,那么可以使用該變量。 |
如果映射到以下網(wǎng)站的虛擬目錄: http://fabrikam/Scripts 配置為重定向到以下網(wǎng)站之外的位置: http://fabrikam/Scripts/Commerce/Accounts 則必須免除重定向,以編程方式將被免除文件夾的重定向字符串設(shè)置為: *;! |
例如,要將所有對 /Scripts/Filename.stm 的請求重定向到名為 Default.stm 的文件,并將所有對 /Scripts/Filename.htm 的請求重定向到 Default.htm 文件,請對 /Scripts 虛擬目錄使用以下重定向請求:
*;Filename.stm;/Default.stm/Filename.htm;/Default.htm
使用重定向標(biāo)志
以下標(biāo)志用于擴(kuò)充 URL 或通配符格式的重定向字符串。允許多個(gè)標(biāo)志。標(biāo)志以編程方式附加到 HttpRedirect 中的重定向字符串中,或通過選中“IIS 管理器”中的復(fù)選框進(jìn)行配置。
標(biāo)志 | 用戶界面復(fù)選框 | 描述 |
EXACT_DESTINATION |
上面輸入的準(zhǔn)確 URL |
表示為 Destination 提供的值應(yīng)被視作絕對目標(biāo)位置。 |
CHILD_ONLY |
該目錄以下的目錄 |
通知 IIS 應(yīng)只發(fā)生一次重定向,因?yàn)槟繕?biāo)位置為初始 URL 的子目錄。此標(biāo)志避免了循環(huán)。并且,僅當(dāng)請求是重定向到初始 URL 的子文件夾或文件時(shí),此標(biāo)志才指示 IIS 重定向該請求。 |
PERMANENT |
資源的永久重定向 | 表示永久重定向該資源。 |
TEMPORARY |
清除“資源的永久重定向”復(fù)選框 | 表示暫時(shí)重定向該資源。 |
綜述:實(shí)現(xiàn)網(wǎng)站的整體301跳轉(zhuǎn),設(shè)置 iis站點(diǎn)屬性》主目錄》重定向到URl 寫入http://www.newdomain.com$S$Q 并且選中 上面輸入的準(zhǔn)確URL和資源的永久重定向。即可使舊域名的網(wǎng)址參數(shù)完整傳遞到新的域名。