有的網站出於各種各樣的原因,在IIS中修改了動態網頁面的預設尾碼,asp時代就有人在伺服器上修改配置,把html尾碼的檔案當作asp檔案來解析:也就是說,asp程式(尾碼為.asp)可以儲存為一個.htm尾碼的檔案放到伺服器上WEB目錄下,而伺服器照樣將之當作asp程式來解釋處理,產生結果。這樣對訪問者來說,還以為網站全是html頁面,而且經常更新呢(感覺沒什麼必要是嗎?錯了,最起碼的一個好處:搜尋引擎可是優先收錄html頁面哦,這樣的話網站將很容易被人在搜尋引擎中搜尋到)
伺服器上修改解析asp檔案的尾碼很容易,在IIS服務管理員 -> 網站屬性 -> 主目錄 -> 配置 -> 應用程式對應中進行修改即可。如果有設定管理員支援PHP的經驗,那就更清楚怎麼回事了。
可是對asp.net就不行了,同樣的辦法,修改應用程式對應後,仍然沒有得到預期的結果,檔案什麼內容,返回的就是什麼內容,而不是當作asp.net程式來處理了。
其實主要是還差一點點,那就是沒有在web.config檔案或C:\windows\microsoft.net\frameworl\v1.1.4322\config\machine.config(windows2003下的路徑,不同的作業系統路徑稍有不同)中配置特定尾碼的檔案的HTTP處理常式,配置步驟(假設我們要增加一個映射,將尾碼為.aaa的檔案當作.aspx頁面來處理。):
先在IIS服務管理員中停掉internet資訊服務(不停掉沒辦法儲存修改的),然後用記事本開啟C:\windows\microsoft.net\frameworl\v1.1.4322\config\machine.config,尋找"*.aspx",能找到這麼一行:
本文相關代碼如下:
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/>
.aspx檔案的解析就是這麼配置的,同樣的道理,我們只要再增加一行,將其中的*.aspx改為*.aaa就行了:
本文相關代碼如下:
<add verb="*" path="*.aaa" type="System.Web.UI.PageHandlerFactory"/>
儲存修改,然後啟動internet資訊服務,就可以將任意的aspx檔案修改為尾碼為.aaa的檔案了。
如果不想修改machine.config檔案,也可以通過修改網站的web.config檔案實現,方法類似,在<configuration><system.web>節點下增加如下配置即可:
本文相關代碼如下:
<httpHandlers>
<add verb="*" path="*.aaa" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
最後說一點,如果是IIS6(也就是windows2003內建的IIS),還得在IIS的網站屬性 -> HTTP頭 -> MIME類型 中增加一個.aaa的MIME類型,不然遇到.aaa的請求時將首先被IIS給攔截掉,沒辦法顯示的。