win2003下IIS6服務器301重定向帶參數的問題詳細解決方法
網站更換域(yu)名,把(ba)舊域(yu)名用301指到新(xin)域(yu)名來。從iis中設置url永久轉向就可以(yi),看上(shang)去很容易,用了一(yi)會兒才發現,參(can)數(shu)都沒有(you)帶(dai)上(shang)。
從微(wei)軟(ruan)網站上找到如下說(shuo)明,果(guo)然好使:
IIS 301重定向設置
通過(guo)本次設(she)置(zhi)IIS的(de)重定向(xiang)(xiang)(xiang),感覺(jue)還是比(bi)較方便的(de)。下面就說一下IIS的(de)重定向(xiang)(xiang)(xiang)方法(fa),因為網站(zhan)改版是面向(xiang)(xiang)(xiang)目錄的(de)遷移的(de),所以(yi)不得(de)不了解以(yi)下幾個微軟的(de)IIS定向(xiang)(xiang)(xiang)參數:
我們在設置(zhi)URL重定向(xiang)的時(shi)候是(shi)可(ke)以使用帶參數形(xing)式(shi)URL的,因為畢(bi)竟經常面(mian)對的URL是(shi)很(hen)多,要(yao)是(shi)就那么(me)一兩(liang)個頁面(mian)301重定向(xiang)隨便怎么(me)整都可(ke)以了(le)。
參數1:$S ——傳遞URL的后綴(zhui)到新的URL;
參數(shu)2:$P——傳(chuan)遞URL 中(zhong)的(de)query參數(shu)到新的(de)URL,不包括問號(?)
參數3:$Q——傳遞URL中的(de)query參數到(dao)新的(de)URL,包括問號(?),所以在設置URL地址時,后面不要帶問號,比如:
將//szjicheng.cn/catalog.asp?cate=os&page=1,重定向到//szjicheng.cn/category.php?cate=1&page=1只需要在(zai)IIS里設置catelog.asp文(wen)件設置重(zhong)定向到 category.php$Q。
參數4:$V——傳遞請求的URL,但是不包(bao)括服務器名和任(ren)何(he)參數。
另(ling)外還(huan)有使用(yong)通配(pei)符重定向,這(zhe)里不(bu)常用(yong)暫(zan)時不(bu)講(jiang)解(jie)。因為我們重(zhong)定向(xiang)多個目錄,所(suo)以(yi)(yi),如果單個去設置(zhi)不同(tong)的定向(xiang)文(wen)(wen)件,那么(me)IIS設置(zhi)起來將會非(fei)常麻煩,但是如果都定向(xiang)到一個文(wen)(wen)件然后再重(zhong)定向(xiang),又會因為$_SERVER['HTTP_REFERER']無法取道對應的引用頁(ye)面(mian),結果為空,所(suo)以(yi)(yi)不得(de)不采用上面(mian)的參(can)(can)數進(jin)行傳遞,這時候只需(xu)要加個參(can)(can)數就可以(yi)(yi)解(jie)決引用頁(ye)面(mian)的傳遞問題,比(bi)如/301.php?go=$V,這樣(yang)就可以(yi)(yi)直接在php文(wen)(wen)件中進(jin)行URL 301重(zhong)定向(xiang)跳轉處(chu)理了(le)。
重定向參考 (IIS 6.0)
重定向(xiang)客戶端請求(qiu)是確保(bao)用(yong)戶得到正(zheng)確頁面的(de)一種方(fang)法(fa),它適用(yong)于站(zhan)點正(zheng)在建(jian)設之中或已改變標識(shi)的(de)情況。您可以將客戶端請求(qiu)重定向(xiang)到同一 Web 服務器上的(de)某個(ge)目錄,或者重定向(xiang)到另(ling)一個(ge) URL。
配置 URL 和通配符重定向
可(ke)以(yi)采(cai)用編程(cheng)方式配(pei)(pei)置重定(ding)向到 URL 以(yi)及通配(pei)(pei)符重定(ding)向。使用重定(ding)向變量和標志可(ke)以(yi)通過(guo)更改 HttpRedirect 配(pei)(pei)置數據庫屬性來指定(ding)目標和行為(wei)。
以下示例顯(xian)示了一個簡(jian)單重定向字(zi)符串的格式(shi)。
//DestinationURL[,Flag[s]]
其中,DestinationURL 可(ke)以(yi)包括(kuo)以(yi)下重(zhong)(zhong)定向變(bian)量,以(yi)將初始 URL 中相關的部分傳遞給目(mu)標 URL。在單個重(zhong)(zhong)定向字符(fu)串中可(ke)以(yi)使用多個變(bian)量。
變量 | 描述 | 示(shi)例 |
$S |
將請求的 URL 的后綴(zhui)傳遞給新的 URL。后綴(zhui)是用(yong)重(zhong)定向的 URL 代(dai)替之后,初(chu)始 URL 中所保留的部分。 如果未設置 EXACT_DESTINATION 標志,則結(jie)果目(mu)標 URL 的名稱(cheng)將具有(you)所請求文(wen)件的名稱(cheng)(作為文(wen)件夾名稱(cheng))以(yi)及文(wen)件名本身(shen)。 |
如果映射到(dao)以下網站的虛(xu)擬目錄: //fabrikam/Scripts 配置為(wei)重定向到以(yi)下確切(qie)的 URL: //fabrikam/NewScripts$S 對以下 URL 的新請求: //fabrikam/Scripts/Program.exe 將自(zi)動重定向至以(yi)下 URL: //fabrikam/NewScripts/Program.exe |
$P |
將初始(shi) URL 中的參(can)數(shu)(如 querystring 參(can)數(shu))傳遞至(zhi)新的 URL,不(bu)包括(kuo)問號 (?)。 |
如果映射到以下網站的虛擬目錄: //fabrikam/Scripts 配置為重定向到以下 URL: //fabrikam/NewScripts$P 對以下 URL 的新(xin)請求(qiu): //fabrikam/Scripts/File.asp?var1=5&var2=6 將自動重(zhong)定向至以下 URL: //fabrikam/NewScriptsvar1=5&var2=6 |
$Q |
將初(chu)始 URL 中的參數(shu)(如 querystring 參數(shu))傳遞(di)至新的 URL,包括(kuo)問(wen)號(hao) (?)。 |
如果(guo)映(ying)射到(dao)以下網站的虛(xu)擬(ni)目(mu)錄(lu): //fabrikam/Scripts 配置為重定向到以下(xia)確切的 URL: //fabrikam/NewScripts$S$Q 對以下 URL 的新請求: //fabrikam/Scripts/File.asp?var1=5&var2=6 將自(zi)動重定(ding)向至以下 URL: //fabrikam/NewScripts/File.asp?var1=5&var2=6 |
$V |
傳遞請求的 URL,不包括服務(wu)器名和任何(he)參數。要包含參數,可(ke)使用 $P 或 $Q 變量及 $V 變量。 如果(guo)未設置 EXACT_DESTINATION 標志,則結(jie)果(guo)目標 URL 的(de)名(ming)稱將具(ju)有所請(qing)求文件的(de)名(ming)稱(作為文件夾名(ming)稱)以及文件名(ming)本身。 |
如果映射到以(yi)下網站(zhan)的虛擬目錄: //fabrikam/Scripts 配置為重定向到以下確切(qie)的(de) URL: //contoso$V 對以下 URL 的新請(qing)求: //fabrikam/Scripts/File.asp 將自動重定向(xiang)至以下 URL: //contoso/Scripts/File.asp |
使用通配符重定向
可以使用重(zhong)定向(xiang)通配符匹配原來 URL 中的任意數目(mu)(mu)(mu)的字(zi)符。目(mu)(mu)(mu)標 URL 以星號 (*) 和(he)分號 (;) 開頭,成對的通配符和(he)目(mu)(mu)(mu)標 URL 之間(jian)用分號分隔。以下示例(li)顯示了一(yi)個(ge)使用通配符的重(zhong)定向(xiang)字(zi)符串的格(ge)式。
*; Wildcard1; Destination1[; Wildcard2; Destination2][, Flags]
其中,WildcardN 可以(yi)包括(kuo)星號 (*) 以(yi)匹(pi)配初(chu)始 URL 中任何(he)數量(liang)的字符,并(bing)使用下表中定義的變量(liang)($0 到(dao) $9)將這些字符傳遞給 DestinationN。
變(bian)量(liang) | 描述 | 示例 |
$0 到 $9 |
傳遞被請(qing)求的(de) URL 中與(yu)指定(ding)的(de)通(tong)配(pei)符(fu)(fu)(fu)相匹配(pei)的(de)部分。對于(yu)每(mei)個 Wildcard;Destination 集,通(tong)配(pei)符(fu)(fu)(fu)必須(xu)從 $0 開始。重(zhong)定(ding)向字(zi)符(fu)(fu)(fu)串必須(xu)附加 EXACT_DESTINATION 標志。 |
如果映射到以(yi)下網站的虛擬目錄(lu): //fabrikam/Scripts 使用以(yi)下(xia)重定向字符串進行配置(zhi): *; /Scripts/*_in.asp; /NewScripts/$0.dll; /Scripts/*_out.asp; //contoso/NewScripts/$0.dll 對以下 URL 的(de)新請(qing)求: //fabrikam/Scripts/data_in.asp //fabrikam/Scripts/data_out.asp 將分別自動重定(ding)向至以(yi)下 URL: //fabrikam/NewScripts/data.dll //contoso/NewScripts/data.dll |
! |
不允許(xu)重定向。 如果當父目錄配置為重定向(xiang)時(shi)要使文件或(huo)子目錄不被重定向(xiang),那么可以使用(yong)該變量(liang)。 |
如果映(ying)射到以下網(wang)站的虛擬目錄: //fabrikam/Scripts 配置為重定向到以下網站之外的(de)位置: //fabrikam/Scripts/Commerce/Accounts 則必須免除(chu)重(zhong)定向,以編程方式將被免除(chu)文件(jian)夾的重(zhong)定向字符串設(she)置為(wei): *;! |
例如(ru),要將(jiang)所(suo)(suo)有對(dui) /Scripts/Filename.stm 的(de)請(qing)求重定向到名(ming)為 Default.stm 的(de)文(wen)件(jian),并將(jiang)所(suo)(suo)有對(dui) /Scripts/Filename.htm 的(de)請(qing)求重定向到 Default.htm 文(wen)件(jian),請(qing)對(dui) /Scripts 虛擬目(mu)錄使用以下重定向請(qing)求:
*;Filename.stm;/Default.stm/Filename.htm;/Default.htm
使用重定向標志
以(yi)下標(biao)(biao)志用(yong)于擴(kuo)充 URL 或通配符(fu)格式(shi)的(de)重定(ding)向(xiang)字符(fu)串(chuan)。允許多個標(biao)(biao)志。標(biao)(biao)志以(yi)編(bian)程方式(shi)附加到(dao) HttpRedirect 中(zhong)的(de)重定(ding)向(xiang)字符(fu)串(chuan)中(zhong),或通過選中(zhong)“IIS 管理(li)器”中(zhong)的(de)復選框進行(xing)配置。
標志 | 用戶界面復選框(kuang) | 描述 |
EXACT_DESTINATION |
上面輸入的準確 URL |
表示為 Destination 提供的值應(ying)被視作絕(jue)對目標位置。 |
CHILD_ONLY |
該目錄以下的目錄 |
通知 IIS 應(ying)只(zhi)發生一次重(zhong)定(ding)(ding)向(xiang)(xiang),因為(wei)目(mu)標位(wei)置為(wei)初始(shi) URL 的(de)子(zi)目(mu)錄。此標志(zhi)避免了循環。并(bing)且,僅當請(qing)求(qiu)是重(zhong)定(ding)(ding)向(xiang)(xiang)到(dao)初始(shi) URL 的(de)子(zi)文件(jian)夾或文件(jian)時,此標志(zhi)才(cai)指(zhi)示 IIS 重(zhong)定(ding)(ding)向(xiang)(xiang)該請(qing)求(qiu)。 |
PERMANENT |
資源(yuan)的(de)永久重(zhong)定向 | 表示(shi)永久(jiu)重定向該資源(yuan)。 |
TEMPORARY |
清除“資(zi)源的(de)永久重定向(xiang)”復選(xuan)框 | 表示暫時重定向(xiang)該(gai)資源。 |
綜述:實(shi)現網(wang)站的整(zheng)體301跳轉,設置 iis站點屬性》主目錄》重定(ding)向(xiang)到URl 寫入//www.newdomain.com$S$Q 并且選中 上面輸(shu)入的(de)準確URL和資源的(de)永久重定向。即可使(shi)舊域(yu)名的(de)網址參數完(wan)整(zheng)傳(chuan)遞(di)到新的(de)域(yu)名。
