很久沒有注意過偽靜態這個事情了,因為平時都是使用的httpd.ini或者.htaccess來實現網站的偽靜態 的。在我們公明本地有一位相當有資金實力的客戶在我們為其開發完網站后,自購了一臺服務器,商家配的系統是windows server 2008,IIS是7.5版本,網站上傳后發現除了首頁能訪問外,其他頁面打不開,也就是偽靜態沒有起作用。

IIS 7和IIS 7.5及以后的版本估計都會使用web.config來實現偽靜態規則,于是我們以前的偽靜態文件必須更改。網上找了一圈,還沒有發現比較全面的web.config偽靜態規則,于是我們這里整理一份,供初次使用的朋友參考。
實現普通頁面、帶一個數字參數頁面和帶兩個參數頁面的偽靜態!
<?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實現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="http://www.szmjldq.com/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
由于我們的網站使用了轉義字符,因此在實際使用的時候,大家不可以直接復制以上代碼。請復制粘貼到Dreamweaver等編輯器后,使用替換功能把雙引號全部替換為英文狀態下的雙引號,然后再修改rule標簽內的內容就可以了,跳轉的地方請更改為自己的網址即可。
需要注意的地方是以前httpd.ini和.htaccess支持網址中兩個參數用&符號鏈接,在web.config中是不支持的,需要將這個符號更改為&才能正常使用。由于我們目前只有一臺這種類型的服務器使用經驗,有可能存在不足,如有更多更全面的資料,歡迎交流學習!