很久沒(méi)有注意過(guò)偽靜態(tài)這個(gè)事情了,因?yàn)槠綍r(shí)都是使用的httpd.ini或者.htaccess來(lái)實(shí)現(xiàn)網(wǎng)站的偽靜態(tài) 的。在我們公明本地有一位相當(dāng)有資金實(shí)力的客戶(hù)在我們?yōu)槠溟_(kāi)發(fā)完網(wǎng)站后,自購(gòu)了一臺(tái)服務(wù)器,商家配的系統(tǒng)是windows server 2008,IIS是7.5版本,網(wǎng)站上傳后發(fā)現(xiàn)除了首頁(yè)能訪(fǎng)問(wèn)外,其他頁(yè)面打不開(kāi),也就是偽靜態(tài)沒(méi)有起作用。
IIS 7和IIS 7.5及以后的版本估計(jì)都會(huì)使用web.config來(lái)實(shí)現(xiàn)偽靜態(tài)規(guī)則,于是我們以前的偽靜態(tài)文件必須更改。網(wǎng)上找了一圈,還沒(méi)有發(fā)現(xiàn)比較全面的web.config偽靜態(tài)規(guī)則,于是我們這里整理一份,供初次使用的朋友參考。
實(shí)現(xiàn)普通頁(yè)面、帶一個(gè)數(shù)字參數(shù)頁(yè)面和帶兩個(gè)參數(shù)頁(yè)面的偽靜態(tài)!
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Index" stopProcessing="true">
<match url="^index.html" />
<action type="Rewrite" url="index.php" />
</rule>
<rule name="Rule1" stopProcessing="true">
<match url="^news_([0-9]+).html" />
<action type="Rewrite" url="news.php?nid={R:1}" />
</rule>
<rule name="Rule2" stopProcessing="true">
<match url="news_list_([0-9]+)_([0-9]+).html" />
<action type="Rewrite" url="news_list.php?nid={R:1}&page={R:2}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
IIS 7.5通過(guò)web.config實(shí)現(xiàn)301重定向的方法,將不帶www的域名轉(zhuǎn)向到帶www的域名上!
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^chuangluo.com$" />
</conditions>
<action type="Redirect" url="http://www.haobangzs.com/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
由于我們的網(wǎng)站使用了轉(zhuǎn)義字符,因此在實(shí)際使用的時(shí)候,大家不可以直接復(fù)制以上代碼。請(qǐng)復(fù)制粘貼到Dreamweaver等編輯器后,使用替換功能把雙引號(hào)全部替換為英文狀態(tài)下的雙引號(hào),然后再修改rule標(biāo)簽內(nèi)的內(nèi)容就可以了,跳轉(zhuǎn)的地方請(qǐng)更改為自己的網(wǎng)址即可。
需要注意的地方是以前httpd.ini和.htaccess支持網(wǎng)址中兩個(gè)參數(shù)用&符號(hào)鏈接,在web.config中是不支持的,需要將這個(gè)符號(hào)更改為&才能正常使用。由于我們目前只有一臺(tái)這種類(lèi)型的服務(wù)器使用經(jīng)驗(yàn),有可能存在不足,如有更多更全面的資料,歡迎交流學(xué)習(xí)!