人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

用靜態(tài)URL顯示動(dòng)態(tài)頁(yè)面

用靜態(tài)URL顯示動(dòng)態(tài)頁(yè)面

更新時(shí)間:2022-07-16 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

松下客

動(dòng)態(tài)生成的網(wǎng)頁(yè)在構(gòu)造真正大型的網(wǎng)站時(shí)是不可缺少的。但是,動(dòng)態(tài)頁(yè)面的名字(即它的URL)往往缺乏明確的含義。例如,名為product.asp?Id=4的頁(yè)面總不如名為/applicances/dishwashers/Model3809.htm的頁(yè)面來(lái)得好記。本文介紹如何實(shí)現(xiàn)靜態(tài)頁(yè)面名字和動(dòng)態(tài)頁(yè)面的映射。  
概述  
靜態(tài)頁(yè)面名字除了具有含義更明確這一優(yōu)點(diǎn)之外,它的另外一個(gè)優(yōu)點(diǎn)在于搜索引擎能夠索引這些頁(yè)面。大多數(shù)搜索引擎,如Alta Vista和Yahoo,不會(huì)檢索URL中帶有問(wèn)號(hào)的頁(yè)面,因?yàn)樗鼈儞?dān)心進(jìn)入永無(wú)止境的鏈接迷宮。把動(dòng)態(tài)頁(yè)面名字轉(zhuǎn)換成靜態(tài)頁(yè)面名字之后,搜索引擎就會(huì)對(duì)這些頁(yè)面進(jìn)行索引和分類(lèi),從而為網(wǎng)站帶來(lái)更多的訪(fǎng)問(wèn)量。  
要使用本文介紹的方法將動(dòng)態(tài)名字轉(zhuǎn)換成靜態(tài)名字,你必須使用Windows 2000和IIS 5.0。IIS 5.0的兩個(gè)改進(jìn)使得我們可以實(shí)現(xiàn)這種轉(zhuǎn)換,它們是:使用Server.Transfer的“自定義錯(cuò)誤信息”功能以及在ASP頁(yè)面中使用Server.Transfer的能力。雖然IIS 4.0也支持自定義錯(cuò)誤信息,但它使用的是Response.Redirect,沒(méi)有用,所以本文方法要求使用IIS 5.0。Response.Redirect之所以沒(méi)有用,是因?yàn)樗阉饕娌粫?huì)追隨重定向。  
使用本文所介紹的方法,網(wǎng)站開(kāi)發(fā)者先用靜態(tài)風(fēng)格的URL鏈接事實(shí)上并不存在的頁(yè)面。然后設(shè)置IIS服務(wù)器,告訴它要用指定的ASP頁(yè)面(404.asp)來(lái)處理網(wǎng)站上出現(xiàn)的所有404錯(cuò)誤。在這個(gè)404.asp頁(yè)面里,把原來(lái)的URL轉(zhuǎn)換成正式的動(dòng)態(tài)URL,利用Server.Transfer執(zhí)行并向用戶(hù)瀏覽器返回目標(biāo)頁(yè)面。  
假設(shè)有如下URL:  
http://www.myserver.com/applicances/dishwashers/kenmore/Model3809.htm
其中myserver.com以網(wǎng)站的域名取代,該URL將返回404錯(cuò)誤。我們首先要做的是用某個(gè)專(zhuān)用的.asp頁(yè)面來(lái)處理所有這些404錯(cuò)誤。這可以用IIS 5.0的“自定義錯(cuò)誤信息”功能來(lái)實(shí)現(xiàn)。設(shè)置該功能的過(guò)程如下:  
●在MMC中打開(kāi)IIS服務(wù)器管理器  
●右擊Web網(wǎng)站節(jié)點(diǎn),然后選擇“屬性”  
●點(diǎn)擊“自定義錯(cuò)誤信息”頁(yè)  
●向下滾動(dòng),直至找到404錯(cuò)誤  
●雙擊404錯(cuò)誤,打開(kāi)“錯(cuò)誤映射屬性”對(duì)話(huà)框  
●將消息類(lèi)型改為URL  
●在URL框輸入“/404.asp”  
●點(diǎn)擊“確定”關(guān)閉窗口  
現(xiàn)在404錯(cuò)誤已經(jīng)由404.asp處理了。當(dāng)IIS調(diào)用404.asp頁(yè)面時(shí),它會(huì)提供導(dǎo)致這個(gè)404錯(cuò)誤的URL,這對(duì)我們來(lái)說(shuō)是非常有用的。  
錯(cuò)誤處理頁(yè)面  
接下來(lái)我們創(chuàng)建處理錯(cuò)誤的404.asp頁(yè)面。首先要做的是獲得導(dǎo)致這個(gè)404錯(cuò)誤的頁(yè)面名字。下面這行代碼從查詢(xún)字符串提取這個(gè)頁(yè)面的名字:  
< %
'獲得頁(yè)面名字
strQ = Request.ServerVariables("QUERY_STRING")
% >
那么,strQ中的哪些內(nèi)容才是重要的呢?在上例中它應(yīng)該如下所示:/applicances/dishwashers/kenmore/Model3809.htm。我們真正需要的只有其中的Model3809(產(chǎn)品型號(hào)),因?yàn)檫@是產(chǎn)品數(shù)據(jù)庫(kù)中的唯一鍵。下面這幾行代碼根據(jù)產(chǎn)品型號(hào)找出產(chǎn)品的ID(編號(hào)):  
< %
' 計(jì)算產(chǎn)品型號(hào)
nIndex = InStrRev(strQ,"/")
If (nIndex >0) Then
strModelNumber = Right(strQ,Len(strQ)-nIndex)
strQ = Left(strQ,nIndex-1)
End If

' 從產(chǎn)品型號(hào)去掉.htm后綴
If ((Mid(strPageName,Len(strPageName),1)="m") And _
(Mid(strPageName,Len(strPageName)-1,1)="t") And _
(Mid(strPageName,Len(strPageName)-2,1)="h") And _
(Mid(strPageName,(strPageName)-3,1)=".")) Then

strModelNumber =Left(strPageName,Len(strModelNumber)-4)

End If

' 從產(chǎn)品數(shù)據(jù)庫(kù)查找產(chǎn)品編號(hào)
strSQL = "SELECT Product_Id FROM Product " _
& "WHERE Product_Model = '" & strModelNumber & "'"
Set oRS = oConn.Execute(strSQL)
If (Not oRS.EOF) Then
lProductId = oRS("Product_Id")
End If
% >
現(xiàn)在我們得到了產(chǎn)品編號(hào),在轉(zhuǎn)換到正確的ASP頁(yè)面之前必須先保存它。我們無(wú)法通過(guò)Server.Transfer在查詢(xún)字符串中傳遞產(chǎn)品編號(hào)(這是IIS的一個(gè)局限),因此必須通過(guò)Session對(duì)象來(lái)傳遞它。  
< %  
Session("Id") = lProductId  
Server.Transfer("/product.asp")
% >
執(zhí)行這個(gè)頁(yè)面時(shí),瀏覽器地址欄中的內(nèi)容如下:  
http://www.myserver.com/applicances/dishwashers/kenmore/Model3809.htm
由于使用了Server.Transfer,瀏覽器地址欄中的URL不會(huì)改變,同樣瀏覽器也不需要與服務(wù)器再交互一次,這與Response.Redirect是不同的。  
另外也請(qǐng)注意URL中的目錄是根本不存在的,事實(shí)上在這里URL中除了服務(wù)器名字之外的其余內(nèi)容根本不起什么作用。例如,下面的幾個(gè)URL都將返回同一頁(yè)面。  
http://www.myserver.com/Model3809.htm
http://www.myserver.com/trucks/ford/Model3809.htm
那么為什么要加上這么多目錄呢?這些目錄將提高搜索引擎對(duì)網(wǎng)站的評(píng)價(jià)。一些搜索引擎認(rèn)為URL中的單詞是比頁(yè)面標(biāo)題和正文更重要的搜索關(guān)鍵詞,所以目錄名字是非常重要的。  
調(diào)用不存在的頁(yè)面  
我們已經(jīng)討論了將并不存在的URL轉(zhuǎn)換為有效動(dòng)態(tài)URL的技術(shù)。然而,要讓搜索引擎能夠索引這些頁(yè)面,我們還需要鏈接這些并不存在的URL。換句話(huà)說(shuō),只有當(dāng)我們鏈接了Model3809.htm頁(yè)面后搜索引擎才會(huì)發(fā)現(xiàn)它。  
以前鏈接這種頁(yè)面時(shí)我們只需按照如下方式給出產(chǎn)品編號(hào):“product.asp?Id=4”。現(xiàn)在我們就來(lái)構(gòu)造一個(gè)以產(chǎn)品編號(hào)為參數(shù)返回恰當(dāng)URL的函數(shù)。  
< %
Function CreateProductURL(lProductId)

strSQL = "SELECT Product_Model FROM Product " _ & "WHERE Product_Id =" & lProductId

Set oRS = oConn.Execute(strSQL)
If (Not oRS.EOF) Then  
strModel = oRS("Product_Model")
End If

CreateProductURL = "/" & strModel & ".htm"

End Function
% >
現(xiàn)在如果我們要加入U(xiǎn)RL,只需按照如下方式進(jìn)行:  
< A HREF="< %=CreateProductURL(4)% >" >洗碗機(jī)< /A >
本例我們假定不知道產(chǎn)品型號(hào)名稱(chēng),必須查詢(xún)數(shù)據(jù)庫(kù)才能得知。但在現(xiàn)實(shí)中可能并非如此,我們知道產(chǎn)品的型號(hào)名稱(chēng),可以直接創(chuàng)建URL而無(wú)需再次訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。  
性能問(wèn)題  
本文所介紹的方法會(huì)明顯地影響性能。首先,為了創(chuàng)建靜態(tài)風(fēng)格的URL它需要一次數(shù)據(jù)庫(kù)調(diào)用。其次,為了從產(chǎn)生404的URL出發(fā)得到正確的URL,它還要增加一次額外的數(shù)據(jù)庫(kù)調(diào)用。最后,兩次Server.Transfer需要較大的開(kāi)銷(xiāo)。  
不過(guò),有些性能問(wèn)題可以用XCache(www.postpointsoft.com)來(lái)解決。XCache能夠把出現(xiàn)404錯(cuò)誤的URL轉(zhuǎn)換到正確的頁(yè)面,并緩存該信息以供后來(lái)的請(qǐng)求使用。  
實(shí)例  
請(qǐng)?jiān)L問(wèn)http://www.kulshan.com,這是一個(gè)應(yīng)用本文技術(shù)的例子。Kulshan.com的大多數(shù)分支頁(yè)面,如餐館、飯店的評(píng)論,都為了在搜索引擎中獲得更高的評(píng)價(jià)而使用了這種技術(shù)。Kulshan.com也使用了XCache。  
小結(jié)
利用IIS 5.0的自定義錯(cuò)誤信息功能控制404錯(cuò)誤可以為動(dòng)態(tài)頁(yè)面制作出靜態(tài)頁(yè)面風(fēng)格的URL。只要無(wú)需創(chuàng)建這些靜態(tài)URL所用到的目錄和文件,那么應(yīng)該說(shuō)創(chuàng)建這種既利于市場(chǎng)宣傳、也利于搜索引擎排位的URL是相當(dāng)簡(jiǎn)單的。

溫馨提示:喜歡本站的話(huà),請(qǐng)收藏一下本站!

本類(lèi)教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 诏安县| 那曲县| 永靖县| 昭通市| 睢宁县| 西充县| 高陵县| 格尔木市| 沭阳县| 永安市| 招远市| 东乌珠穆沁旗| 新乡县| 磴口县| 文化| 错那县| 济南市| 抚远县| 韩城市| 呼玛县| 武宁县| 固安县| 理塘县| 梨树县| 西平县| 达拉特旗| 龙州县| 哈尔滨市| 桓台县| 桐梓县| 图片| 贡山| 九龙城区| 铅山县| 安乡县| 金塔县| 类乌齐县| 孟村| 鹤壁市| 新晃| 新化县|