一.如何使IIS支持中文域名
首先了解一下,如何才能使IIS支持中文域名。
因為經過 Nameprep處理過的國際化域名是以 Unicode 序列的形式表示的。但現有的 DNS系統只支持用 ASCII字符表示的域名,所以要對 Unicode 序列進行 ACE (ASCII-compatible encoding) 編碼,把 Unicode序列表示的域名轉換成 ASCII 字符串表示的ACE 域名。
PunyCode是一種專為國際化域名而設計的高效ACE 編碼方式。它可以在Unicode序列和ASCII 字符串之間進行唯一的和可逆的轉換。轉換的過程中,Unicode 序列中的ASCII字符保持不變,國際化字符則用字母和數字來表示。它的實質是一種用數量有限的基本字符(字母和數字)來唯一地表示大字符集(Unicode)中的字符的通用算法。域名中的字符,包括 ASCII 碼和 Unicode 碼,都是作為整數進行處理。
也就是說,要讓IIS支持中文域名,只需要在輸入中文域名的地方,輸入中文域名的PunyCode編碼便可。當然,具體的轉換計算過程並不需要自己去做,這裡給大家介紹兩種獲得域名的PunyCode的方法。
(1)如果域名是在ORAY注冊的,那麼登陸ORAY的控制台,進入域名管理,在域名狀態裡面會顯示該中文域名的PunyCode。
圖1 在ORAY的控制台查看域名的PUNYCODE
(2)使用CNNIC提供的中文域名在線轉碼程序。打開http://www.cnnic.net.cn/html/Dir/2003/10/29/1112.htm 後,輸入要轉換的中文域名,然後選擇“轉成punycode”,提交便可。
圖2 CNNIC提供的轉換工具
圖3 轉換後的結果
什麼是Nameprep?
Nameprep 是“A Stringprep Profile for Internationalized Domain Names (IDN)”,它描述了如何准備一個多語種域名,包括對一個域名字段進行映射、正規化以及禁止性過濾等等操作。
二.安裝IIS組件
Windows Server 2003 默認安裝,是不安裝IIS 6 的,需要另外安裝。步驟如下:
打開控制面板的“添加/刪除程序”- Windows組件向導 - 應用程序服務器 - 選中“Asp.NET”,然後系統會自動把“Internet 信息服務(IIS)”的相關服務也裝上。如下圖:
圖4 安裝IIS
在選定需要安裝的服務後,安裝向導會提示需要插入Windows 2003安裝光盤,插入安裝盤後按照提示進行安裝,IIS中的WEB很快便自動安裝完成。
三.建立WEB網站
1.打開Internet 信息服務(IIS)管理器,可以在 開始菜單的“運行”輸入“Inetmgr”打開,也可以通過控制面板 – 管理工具進行打開。
圖5 Internet 信息服務(IIS)管理器的界面
2.右擊“網站”- 新建 - 網站 - 下一步,這裡要求輸入站點描述,這個描述是IIS裡面的一個識別,只是為了自己方便識別不同站點。在這裡,輸入“動態域名.net”。
圖6 創建一個新站點
3.(1)網站IP地址:一般沒有特殊要求的,選擇“全部未分配”就可以了。(2)端口:一般使用默認值80,那麼別人訪問您的網站的時候就不需要在後面加端口號。如果換成了其他端口,別人訪問您的時候就需要在域名後加上端口,例如,把端口換成8080。則在浏覽器裡需要輸入http://域名:8080 進行訪問,並且前面的HTTP不能省略。(3)主機頭:當要建立多個網站的時候,這裡才需要設置。如果你的服務器上只有一個網站,那麼這裡保留為空便可。
圖7 創建新站點時的設置
按下一步後,IIS會要你設置網站所在的目錄。然後設置網站的權限,如果你的網站需要運行ASP等腳本程序,則選上“運行腳本(如 ASP)”。這樣,就基本完成了整個站點的建立。
圖8 設定網站訪問權限
4.IIS 6比IIS 5多了一個“WEB服務擴展”功能,如果這裡沒有設置正確,那麼ASP等其他腳本網頁也是無法正常顯示的。雙擊“Web服務擴展”,然後在Active Server Pages(即ASP)上點擊鼠標右鍵,選擇“允許”,便可開啟對ASP的支持。
圖9 IIS6的設置
通過上面的步驟,便完成了單個網站的建立。
四.建立多個網站的主機頭設置
實際上,很多時候都需要為IIS設置多個網站。通過設置IIS的主機頭,可實現不同的域名訪問不同的站點。但主機頭設置裡面,是不允許輸入中文的。因此,在進行設置之前要先把中文域名轉化成為PunyCode編碼,然後在主機頭設置裡面填上中文域名所對應的PunyCode便可。這裡以“動態域名.net”和“中文域名測試.net”為例子,來說明中文域名的IIS主機頭的設置。
在上面的文章裡,已知“動態域名.net”、“中文域名測試.net”對應的PunyCode分別是:“xn--6fR65A27F61K.net”和“xn--fiQ06L2rDsvScfJi99B.net”。並且已經建立了“動態域名.net”這個網站,接下來修改一下它的主機頭。右擊網站,選擇 屬性 - 網站 - 高級 ,點擊裡面的“編輯”按鈕,便可以修改主機頭的設置,在裡面輸入“xn--6fR65A27F61K.net”。接著,再新建一個“中文域名測試.net”的網站,主機頭裡面填“xn--fiQ06L2rDsvScfJi99B.net”。
圖10 設置主機頭一
圖11 設置主機頭二
到此為止,IIS多個中文域名對應多個網站的主機頭的設置便完成了,訪問者可以通過輸入“動態域名.net”、“中文域名測試.net”來訪問它們相對應的網站。
五.用中文域名訪問主機
1.因為這裡用的“動態域名.net”和“中文域名測試.net”是ORAY的動態域名,所以要先在服務器上,用域名對應的花生殼護照登陸客戶端程序,域名才能被正確解析到服務器的IP地址。當然,如果你的域名是在其它地方注冊商申請的,已經指向到服務器的IP地址上,可以省略這一步。
圖12 在花生殼中設置主機的IP
2.另外,這裡先來了解一下什麼是i-Nav。i-Nav是國際領先的數字信任服務提供商VeriSign提供的一個浏覽器插件。有了這個插件,您可以在浏覽器中直接輸入中文域名,或者點擊網頁中的鏈接便能訪問中文域名對應的網站。
所以,當訪問者在浏覽器輸入“http://動態域名.net” 時:(1) 如果計算機上安裝了“i-Nav”插件的話,那麼直接便可以打開域名所對應的網站。(2)如果計算機上沒有安裝“i-Nav”插件,會轉到VERISIGN提示安裝。如果訪問者不想安裝插件,在點擊“不,謝謝”後,便會轉到配置好的網站上。
圖13 可選的“i-Nav”插件的安裝
打開IE浏覽器,分別訪問“動態域名.net”和“中文域名測試.net”進行測試,以下是測試的結果。在這裡要提醒一下大家,別忘記了給網站設置默認的首頁文檔,否則可能會造成網站無法訪問。(首頁文檔可在站點的“屬性”―“文檔”中進行設置)
圖14 中文域名訪問示例一
圖15 中文域名訪問示例二