亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1293 | 回復(fù): 0
打印 上一主題 下一主題

實現(xiàn)WEB中的@虛擬域名系統(tǒng)(原理篇) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-04-09 20:03 |只看該作者 |倒序瀏覽
很多網(wǎng)友可能發(fā)現(xiàn),現(xiàn)在在一些網(wǎng)站中,特別是個人網(wǎng)站中發(fā)現(xiàn)有使用youname@xxx.com的虛擬域名。當(dāng)我告訴我朋友的時候他們都說這不是電子郵件的地址嗎?其實本來確實是的,不過要是將它輸入到瀏覽器的地址中時,它就不是了,而是地地道道地一個子級域名。有的網(wǎng)友也問為什么不用http://bbs.siyizhu.com之類的虛擬域名呢,這才是真正的二級子域名啊。因為這在實現(xiàn)方面沒什么不同,只是"。"在域名中的作用可大不一樣,你可以用http://siyizhu.com訪問,確不是http://siyizhu@com吧,因為"。"要考慮到一個解析解碼的問題。所以要做"。"的虛擬域名必須要讓域名服務(wù)商開通泛域名的作用,就是只要在瀏覽器的地址欄中鍵入*.siyizhu.com的域名,都會先到luyu.net服務(wù)器上去請求解析解碼服務(wù),這樣的話,實現(xiàn)起無限多個免費的"。"虛擬域名就不是難是了。關(guān)鍵大部分泛域名的開通是要收100到200元人民幣的,所以我們暫不考慮而考慮用免費的@域名了。有的網(wǎng)友也問為什么不用"!#$%"其他的符號而偏偏要用@呢,這一點在看完下面的文章你自然就會明白了。
  通過本文章你就可以做出屬于自己的@域名了。到時候自己就是管理員,想加什么鏈接都可以,包括中文的,想想直接打http://壁紙@luyu.net那多爽啊。不過中文要注意的是UTF-8規(guī)范問題。
  下面我們就先講一下實現(xiàn)@虛擬域名的方方面面。
  @虛擬域名的實現(xiàn)始于在瀏覽器中直接以用戶和密碼的方式登錄FTP服務(wù)器的方法。如:在瀏覽器的地址欄中鍵入password:username@ftp://my.ftp.com,此時IE就會自動以用戶 "username" 和密碼 "password"登陸FTP服務(wù)器;相當(dāng)于先在瀏覽器的地址欄中鍵入ftp://my.ftp.com,進(jìn)入登錄頁面,再在提示下輸入用戶名和密碼一樣。這是為什么呢?原來在http1.1協(xié)議中,就規(guī)定實現(xiàn)了http的訪問授權(quán)功能,形式就如同上面的password:username@FTP或是以header發(fā)送的服務(wù)器主機(jī)。然后其中的password一項可以省略,也就是說訪問username@服務(wù)器主機(jī),就等于是以username的身份訪問此服務(wù)器主機(jī)一樣,就樣我想大家就會明白為什么我們可以用@,而不用其他的符號了吧。所以說guestbook@luyu.net,實際上就是以guestbook的用戶來訪問luyu.net主機(jī),可為什么能訪問到留言簿的頁面呢?其實這只是個簡單的頁面跳轉(zhuǎn)功能而以,具體的在下面將討論到。
  實現(xiàn)跳轉(zhuǎn)的功能就是指當(dāng)用戶進(jìn)入一個頁面時,此頁面會自動的鏈接到一個新的頁面。例如:你在打http://siyizhu.com時,進(jìn)入的其實不是http://siyizhu.com/index.html或是http://siyizhu.com/default.html而是default.html。這可是不我自作多情修改了服務(wù)器的默認(rèn)連接文檔,況且大部分情況上你也修改不了(因為不是自己的服務(wù)器)。其實你在打http://siyizhu.com時,瀏覽器還是先進(jìn)入default.html頁面,然后由里面的javascript來進(jìn)行轉(zhuǎn)向,不信的話,你可以打開我的default.html文檔看看就知道了,不過下面我們也會把它貼出來的。
  其實我的default.html文檔中只有下面的幾行:

  this.location = "gourl.asp?user=" + this.location.href;
  
  只有短短的三行代碼,其實他的作用就是實現(xiàn)轉(zhuǎn)向,當(dāng)網(wǎng)友輸入http://bbs@siyizhu時,實際上這段代碼就是將這個值賦給user變量,并轉(zhuǎn)送給gourl.asp文件中去,以便處理。其實user的值關(guān)鍵就在于@前的http://后的那些字符,在這兒是"BBS",而http://guestbook@lsiyizhu中就是"guestbook"。我們得到這些字符后,再進(jìn)行相應(yīng)的轉(zhuǎn)向其真實的網(wǎng)址。
  如:如果得到的值的"BBS",我們就轉(zhuǎn)到http://siyizhu/free這個網(wǎng)址。那么如果知道是http://luyu.net/free呢,我們可以通過文本或數(shù)據(jù)庫等來來讀。這里我們選擇ACCESS數(shù)據(jù)庫,因為管理起來比較方便,而且支持ASP的主機(jī)一般都是支持ACCESS的。
  下面是庫中的url表結(jié)構(gòu):
  字段名 字段類型 字段默認(rèn)值 //功能注釋
  id int 自增 關(guān)鍵字 1 不用user做關(guān)鍵字是怕其中有中文字符
  user 字符型 null 如BBS或GUESTBOOK的值
  url 字符型 null 轉(zhuǎn)向的網(wǎng)址
  click int 0 訪問量
  表里的字段很少,只有4個,網(wǎng)友可以根據(jù)需要再增加一些功能字段,如是否有彈出窗口廣告,訪問量分析等。不過必要的就是user字段和url字段,因為我們必須要得到user的值,再根據(jù)它得到其轉(zhuǎn)向url網(wǎng)址,再在gourl.asp中實現(xiàn)轉(zhuǎn)向就行了。
  下面是gourl.asp中實現(xiàn)轉(zhuǎn)向的全部程序(我會在程序中寫下注釋):
  dim conn,dbs //定義變量
  Set conn=Server.createObject("ADODB.Connection") //建立連接對象
  dbs=server.mappath("url.mdb") //定義要連接的數(shù)據(jù)庫路徑
  conn.open "driver={microsoft access driver (*.mdb)};dbq="&dbs //打開并實現(xiàn)其數(shù)據(jù)庫源的鏈接
  user=trim(request.querystring("user")) //得到default.html文件中得到的在瀏覽器中輸入的網(wǎng)址
  if user"" then //當(dāng)user值不為空時
  user=replace(user,"http://","") //將"http://"字符串從user值刪去
  at=instr(user,"@") //將user值中"@"所在位置賦給變量at
  else
  response.write "信息出錯,請聯(lián)系moon!" //當(dāng)user值為空時則告訴網(wǎng)友有錯
  end if
  if at>0 then
  user=left(user,at-1) //當(dāng)user值中"@"所在的位置大于0時,將其中的部分重賦給user,如"BBS"或"  GUESTBOOK"等值
  else
  response.redirect "def.htm" //如果沒有得到其中的值,如打http://www.luyu.net時,就返回def.htm文件中。
  response.end //停止輸出
  end if
  if user"" then
  set rs=conn.execute("select url from dns where user=’"&user&"’") //當(dāng)user值不為空時,連接數(shù)據(jù)庫,將進(jìn)行搜索
  if not rs.eof then
  conn.execute("update url set click=click+! where user=’"&user&"’")//當(dāng)記錄不為空時,將此網(wǎng)站的訪問量加1
  response.redirect rs("url") //再轉(zhuǎn)向其網(wǎng)站
  else
  response.write "抱歉,沒有這個網(wǎng)站!" //記錄為空時,警告網(wǎng)友沒有此網(wǎng)站
  end if
  set rs=nothing
  else
  response.write"抱歉,沒有這個域名!" //當(dāng)user的值為空時,則警告網(wǎng)友沒有此域名
  end if
  set conn=nothing //關(guān)閉數(shù)據(jù)庫連接
  如果想在訪問虛擬域名時做個彈出窗口,以幫自己做個廣告的話,可以在將上面的代碼改成:
  
  window.open("http://siyizhu","簡單生活","width=350,height=450");
  this.location = "gourl.asp?user=" + this.location.href;
  
  好了,這樣一個域名訪問系統(tǒng)就簡單的做好了。如果和PHP或是JSP等來實現(xiàn)的話,原理也是一樣的,我相信大家看了這篇文章都可以做出來了。只是把gourl.asp文件改一下便可。


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/15511/showart_97367.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP