很久沒有注意過僞靜(jìng)态這個事(shì)情了,因爲平時都(dōu)是使用的httpd.ini或者.htaccess來(lái)實現網站(zhàn)的僞靜(jìng)态 的。在我們公明本地有一位相(xiàng)當有資金實力的客戶在我們爲其開發完網站(zhàn)後,自(zì)購(gòu)了一台服務器,商家配的系統是windows server 2008,IIS是7.5版本,網站(zhàn)上傳後發現除了首頁能訪問(wèn)外,其他(tā)頁面打不開,也就(jiù)是僞靜(jìng)态沒有起作(zuò)用。
IIS 7和IIS 7.5及以後的版本估計(jì)都(dōu)會使用web.config來(lái)實現僞靜(jìng)态規則,于是我們以前的僞靜(jìng)态文件(jiàn)必須更改。網上找了一圈,還(hái)沒有發現比較全面的web.config僞靜(jìng)态規則,于是我們這裡(lǐ)整理(lǐ)一份,供初次使用的朋友參考。
實現普通頁面、帶一個數字參數頁面和帶兩個參數頁面的僞靜(jìng)态!
<?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="index1.html" />
</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_0_1.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
IIS 7.5通過web.config實現301重定向的方法,将不帶www的域名轉向到帶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="/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
由于我們的網站(zhàn)使用了轉義字符,因此在實際使用的時候,大(dà)家不可(kě)以直接複制以上代碼。請(qǐng)複制粘貼到Dreamweaver等編輯器後,使用替換功能把雙引号全部替換爲英文狀态下的雙引号,然後再修改rule标簽内的内容就(jiù)可(kě)以了,跳(tiào)轉的地方請(qǐng)更改爲自(zì)己的網址即可(kě)。
需要注意的地方是以前httpd.ini和.htaccess支持網址中兩個參數用&符号鏈接,在web.config中是不支持的,需要将這個符号更改爲&才能正常使用。由于我們目前隻有一台這種類型的服務器使用經驗,有可(kě)能存在不足,如(rú)有更多更全面的資料,歡迎交流學習!