相信很多喜爱制作个人网站的朋友都使用过类如http://yourname.yeah.net或者http://yourname.126.com的免费三级域名,有很多人在想:我要是能让自己的服务器也能够实现域名转向就好了。其实这并不复杂。看完了本文,你也可以做一个域名转向系统。
域名转向系统的关键技术在于:实现Web页面的重定向(Redirctory)。在本质上,域名转向系统和虚拟机系统完全不同。虚拟机的虚拟域名和IP是存在一一对应关系的。而域名转向系统不需要将域名和IP做一一映射。也就是说,它根本不需要复杂的域名解析机制和虚拟机来完成,它所做的事情就是当你在请求*.yourdomain时,将你的浏览器重新定向到你存放Html页面的实际地址。
下面我们一步一步实现域名转向系统:
(假设你的域名是www.mydomain.com 主机地址是 196.0.0.1)。
首先我们要设置DNS把 *.mydomain.com 指向我们的主机地址 196.0.0.1。(如果你没有自己的DNS服务器你可以跳过这步分并与您的域名服务商联系请他们帮你把*.mydomain.com指向196.0.0.1)
win2000的DNS管理工具不允许把主机名称直接填写为*也就是说我们在win2000DNS管理工具里无法直接把*.mydomain.com指向同一个IP地址。但我们可以通过更改winnt\system32\dns\mydomain.dns这个文件来实现。此文件以文本格式保存,我们可以通过写字板将其打开。
我们需要在末尾处加入一条 * A 196.0.0.1 的记录。
我们在WIN2000的DNS管理工具里更新服务器数据文件。你会发现mydomain.com域里多出了我们本来无法直接添加的主机“*”。(注意:几小时后您所做的DNS设置才会生效。)
为了这个域名转向系统可以运行在多平台下我们选择php+mysql制作程序部分,请检查你的web服务器是否安装了php和mysql:
我们用index.htm读出浏览器送出的HTTP头信息送给dns.php,dns.php查询数据库得到转向地址并返回给客户端。
建立mysql数据库mydomain
CREATE TABLE dns (
main char(60),
link char(255)
)
main用来保存*.mydomain.com的*部分
link用来保存域名对应的转向地址。
作成index.htm:
<スクリプト>
this.location ="dns.php?url="+ this.location.href;
代わりに理由を尋ねる友達もいますphpGetAllHeader() 関数は、HTTP ヘッダー情報を取得します。ブラウザ。関数 GetAllHeader() は のみをサポートしているためです。 Apache の web サーバーだと思いますほとんどwin2000ユーザー使用iis サーバー。互換性の問題を考慮して、JavaScript を使用して、ブラウザの 🎜>HTTP ヘッダー情報。
dns.phpファイル:$domain="mydomain.com"; //
ドメイン名
$database="mydomain" //データベース
$datauser="root"; //データベース ユーザー
$datapwd ="" //データベースパスワード
$dataserver= "localhost"; //データベースサーバーアドレス
?>
$db=mysql_pconnect($ dataserver,$datauser,$datapwd);
?>
$url= str_replace("http://","",$url);
$url=strrev($url);
$url=strchr($url,strrev($domain));
$url=strrev($url);
$main=str_replace("."."$domain","",$url);
?>
$str="dns からリンクを選択します (main='$main'";
$result=mysql_db_query($database,$str,$db);
list($link)=mysql_fetch_row($result);
?>
例外処理-->
< ?if($link==null):?>
システム エラー、またはこのドメイン名はまだ登録されていません !
endif;?>
プログラムは部分的に完了しました。
最後に行うことは、Web サーバーを構成することです。例
インターネット情報サービスの管理ツールを開き、新しいサイト *.mydomain.com を作成します (このサイト は の独立 IP のデフォルト サイトとして使用する必要があることに注意してください)
インデックスを付ける.htm を *.mydomain.com の デフォルト ドキュメントとして使用します。
ドメイン名リダイレクト システムが実装されました。データベースにデータを追加できます
Insert into dns values("etechnic","www.etechnic.com.cn")
今後は、全員が入力するだけで済みます eNet テクニカル チャネルに入るには、ブラウザ .com で >etechnic.mydomain にアクセスします。
ここでは、ドメイン名リダイレクトのコアコンテンツのみを紹介します。my のようなものを提供するための簡単な登録部分を記述するだけです。 . Yeah.net の無料ドメイン名がサービスに移管されました。または、zjzf_1@163.net に電子メールを送信して、ASP cgi php の各バージョンの完全なドメイン名リダイレクト サービス プログラムを無料でリクエストすることもできます。
プログラム部分はiis5.0+php4.0+mysql および linux+mysql+Apache 。専門家が欠点について教えてくれることを願っています。