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