技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類(lèi)目錄

贊助商

最新文章

搜索

實(shí)例介紹Web.config rewrite規(guī)則設(shè)置url重寫(xiě)功能

作者:admin    時(shí)間:2022-8-26 8:15:42    瀏覽:

本文介紹的是,如何通過(guò) Web.config 的rewrite規(guī)則,設(shè)置url重寫(xiě)功能。

首先請(qǐng)注意,本文適用IIS7及以上,不適用IIS6,IIS6用戶可按照下文實(shí)現(xiàn)rewrite重寫(xiě)功能。

同樣要注意的是,要實(shí)現(xiàn)在 Web.config 的rewrite重寫(xiě)功能,你必須先安裝 URL_Rewrite 重寫(xiě)模塊,很簡(jiǎn)單,只需下載一個(gè)文件,幾秒鐘安裝完畢,參看下文及下載安裝文件。

下面是本文要介紹的內(nèi)容,如何通過(guò) Web.config 的rewrite規(guī)則,設(shè)置url重寫(xiě)功能。

實(shí)例代碼

<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.webServer>
<rewrite>
<rules>
<rule name="rule1">
             <match url="^(.*)t/([0-9,a-z]*)" ignoreCase="false" />
             <action type="Rewrite" url="{R:1}/list.asp?id={R:2}" appendQueryString="false" />
          </rule>
          <rule name="rule2">
             <match url="^(.*/)*([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$" />
             <action type="Rewrite" url="{R:1}/index.php?moduleid={R:2}&catid={R:3}&itemid={R:4}&page={R:5}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

解釋

1、<rule>節(jié)點(diǎn)的name不能重復(fù)。

2、<match>里的url是一個(gè)正則表達(dá)式,實(shí)例里^(.*)t/([0-9,a-z]*)是一個(gè)常用的句式。

^匹配域名開(kāi)頭,如:http://www.howtostagehomes.com/,注意域名后面有個(gè)斜杠/

(.*)匹配任何字符。

([0-9,a-z]*)匹配任何數(shù)字和字母。

 因此,^(.*)t/([0-9,a-z]*) 可以匹配如下的訪問(wèn)網(wǎng)址(假如網(wǎng)站域名是www.howtostagehomes.com):

http://www.howtostagehomes.com/t/123
http://www.howtostagehomes.com/news/t/a1

3、<action type="Rewrite" ...>表示執(zhí)行的類(lèi)型是重寫(xiě),里面的url是實(shí)際網(wǎng)址,{R:1}/list.asp?id={R:2} 的解釋如下:

{R:1}對(duì)應(yīng)<match>里的url的第一個(gè)括號(hào)內(nèi)容,{R:2}對(duì)應(yīng)<match>里的url的第二個(gè)括號(hào)內(nèi)容,如果有{R:3}、{R:4},如此類(lèi)推。

所以,如果假如用戶訪問(wèn)的網(wǎng)址是

http://www.howtostagehomes.com/t/123
http://www.howtostagehomes.com/news/t/a1

那么,其對(duì)應(yīng)的實(shí)際網(wǎng)址是

http://www.howtostagehomes.com/list.asp?id=123
http://www.howtostagehomes.com/news/list.asp?id=a1

4、按照上面的解釋?zhuān)銘?yīng)該差不多能讀懂實(shí)例的rule2重寫(xiě)規(guī)則了。

$,這是個(gè)結(jié)束符,表示匹配的url到此結(jié)束,后面沒(méi)有其他字符了。

([0-9]+) 表示匹配任何數(shù)字。

\.html 表示匹配 .html。

\?表示匹配一個(gè)問(wèn)號(hào)?。

特別要注意,反斜杠\是轉(zhuǎn)義符,因?yàn)檎齽t表達(dá)式里,一點(diǎn).是表示匹配任何字符的意思,所以要加上反斜杠對(duì)其轉(zhuǎn)義,這樣才表示匹配的是一個(gè)點(diǎn).。

同樣地,問(wèn)號(hào)?也是一個(gè)元符號(hào),它表示匹配前面的子表達(dá)式零次或一次,因此,也需要在其前面加上轉(zhuǎn)義符\,這才表示匹配的是一個(gè)問(wèn)號(hào)?。

5、其他

ignoreCase="false" 表示不能忽略大小寫(xiě),如果該值設(shè)為true,則表示忽略大小寫(xiě)。

appendQueryString="false" 表示不使用url參數(shù)。

總結(jié)

本文詳細(xì)介紹解釋了ASP.NET Web.config rewrite規(guī)則設(shè)置url重寫(xiě)功能,參考實(shí)例的語(yǔ)法結(jié)構(gòu),你可以寫(xiě)出符合自己要求的重寫(xiě)規(guī)則,你需要了解一些簡(jiǎn)單的正則表達(dá)式的語(yǔ)法。

不要忘了,前面說(shuō)的要實(shí)現(xiàn)在 Web.config 的rewrite重寫(xiě)功能,你必須先安裝 URL_Rewrite 重寫(xiě)模塊,很簡(jiǎn)單,只需下載一個(gè)文件,幾秒鐘安裝完畢,參看下文及下載安裝文件。

x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */