玩轉虛擬網域名稱◎+ .
不知道大家最近上網是否發現乙個新現象,就是有一些**開始提供「username@server」的虛擬網域名稱程式設計客棧服務。由於「@」的魅力,大家紛紛申請,你或許會想:「如果我也能提供這種服務,該多好阿:)人氣肯定不錯!」本文將給大家揭開「@」的「神秘」面紗,讓大家都可以來「@」!(do u @ today?)
別急,這個並不是電子郵件的位址,是一種虛擬網域名稱,不相信的話可以在瀏覽器中訪問「[email protected]」。部分朋友應該使用過ie的ftp功能,就是在瀏覽器的位址列中鍵入「password:username@server」ie就會自動登陸ftp伺服器;而在http1.1協議中,就規定了http訪問授權功能,形式同樣為「password:username@server」,其中「password:」可以省略,也是是訪問「[email protected]」實際上是以bbs的身份訪問「zphp.com」這個伺服器。
那麼我們只是需要將具體的uri傳送給php程式,在資料庫中搜尋出真實的url重定向就可以了。
首先我們需要製作乙個傳送uri的頁面(作為伺服器的預設文件,一般命名為inwww.cppcns.comdex.htm);在js的window物件中就可以實現這項功能,下面是index.htm的源**:
上面的**會將瀏覽器重定向到gotourl.php,並且通過querystring給變數$url賦值為當前的uri。
成功將uri傳遞給php程式後,就可以進入資料庫查詢真實url,下面是sql資料庫相對應的table 的結構:
create table domain(
id int(3) unsigned default 『0' not null, # 網域名稱id
domain char(20) not null, # 網域名稱
gotourl char(255) not null, # 真實的url
); 建立好了table,就可以開始編寫gotourl.php了,程式分為三個部分:
1、 分析url:
$url = preg_replace(「/^http:\\/\\//i」, 「」, $url); // 將url前面的「http://」去掉,不區分大小寫
$url = preg_replace(「/@.+$/」, 「」, $url); // 將「@」後面的部分去除
那麼,剩下的url就只含有「username」的部分了。
為了給資料庫應用,需要對銘感的字元進行處理:
$url = addslashes($url);
2、 搜尋真實的url:
這裡為了實現程式的通用性,使用了乙個資料庫的操作類(修改自phplib)來操作sql資料庫:
$db = new dbsql(); // 連線資料庫
$querystring = sprinf(「select gotourl from domain where domain='%s';」, $url); // 生成查詢字串
$gotourl = $db->result($querystring); // 查詢取得結果
3、 重定向:
在php中重定向瀏覽器有多種方法,在這裡使用比較簡單的httpheader來實現:
header(「location: $gotourl」);
附 其實像網易那程式設計客棧樣子的「程式設計客棧username.yeah.net」的虛擬網域名稱服務和「@」的實現方法大同小異,但是「.」需要以價值200元的dns泛解析為代價,而「@」所需要的僅僅是:
1、 php/sql資料庫的許可權;
2、 真正dns解析的網域名稱。
如果需要在虛擬網域名稱服務中加入廣告,比如網易的popup視窗,可以將重定向部分改為:
為了對得起「天地良心」,筆者沒有將合併後完整的程式加上來(騙稿費?),如果大家比較懶,需要完整的**(包括了新增等等),可以在或者取得。希望大家都有乙個好的訪問量。
本文標題: 玩轉虛擬網域名稱◎+ .
本文位址:
玩轉虛擬網域名稱
玩轉虛擬網域名稱 不知道大家最近上網是否發現乙個新現象,就是有一些 開始提供 username server 的虛擬網域名稱服務。由於 的魅力,大家紛紛申請,你或許會想 如果我也能提供這種服務,該多好阿 人氣肯定不錯!本文將給大家揭開 的 神秘 面紗,讓大家都可以來 do u today?別急,這個...
Apache配置虛擬網域名稱
apache配置檔案的修改。apache httpd.conf,開啟httpd.conf檔案。1 找到 loadmodule rewrite module modules mod rewrite.so 把前面的 去掉。2 打到以下 斷 options followsymlinks allowover...
Xampp Apache 配置虛擬網域名稱
1.找到 c盤 window system32 drivers etc hosts檔案用記事本開啟,往裡面新增 2.找到在c盤xampp目錄進入apache conf extra httpd vhosts.conf檔案,記事本開啟在最後新增 serveradmin admin xiaoq.com d...