ユーザーがカスタム ドメインを持つことができる機能を作成したいと考えています。ブロガー/ワードプレスがやっていることのように。
例えば
http://www.domain.com
ユーザーは独自のカスタム ドメインを持つことができます
http://www.custom.com
www.custom.com と入力すると、www.domain.com にマップされます
どうすればいいですか?私はphpを使用しています。これはサーバー構成ですか?
これは、マルチアカウント プラットフォームで行います。彼らがドメイン名を指定するたびに、cpanel api を使用してアドオン ドメインを作成し、ドメインのネームサーバーを私のホスティングに変更するよう依頼します。ここに例を示します: www.example.com はユーザーにネームサーバーを ns1.hostingwerks.com および ns2.hostingwerks.com に変更するように依頼します ユーザーにドメインのプロンプトを表示する API を使用してドメインに追加する ユーザーに完了を伝えますが、それが完了するまでしばらく時間がかかりますpropigate これには wm へのアクセスが必要ですが、多少の助けになるかもしれません。
if(!empty($domain) AND $olddomain != $domain){
$d = explode(".",$origdomain);
if(count($d) != 1){
if($d[0] == "www" OR $d[0] == "http://www" OR $d[0] == "https://www"){
$origdomain = $d[1] .".". $d[2];
}
else {
$origdomain = $d[0] .".". $d[1];
}
}
if(substr($origdomain, 0, 8) == "https://"){
$origdomain = substr($origdomain, 8);
}
elseif(substr($origdomain, 0, 7) == "http://"){
$origdomain = substr($origdomain, 7);
}
$dom = $origdomain;
$user = "your cpanel client username";
$addonpass = "your new domain's password";
$cpanel_skin = "x3";
$passw = "your cpanel password";
$ownername = "your cpanel hosting user name";
$pass = "your cpanel password";
$host = "localhost";
//Using 'explode' breaks the domain into its constituent pieces, the name and the extension (TLD), and puts them in an array
$domai = explode('.',$dom);
/*the directory path is defined by the first element appended to public_html. It does not matter where this file, 'addonhelper.php', is located -
the program will always install the addon domains to this directory. If this needs to be changed, this line needs to be updated.
Some versions of Cpanel do not allow for this to be changed and will ignore changes. Most notably - version X.*/
$dir="public_html/sys";
//the user is the first element of the $domain, as requested
$user=trim($domai[0]);
//put the domain back together and trim whitespace.
$dom=trim($domai[0]).".".trim($domai[1]);
//create the cpanel request.
$request = "/frontend/$cpanel_skin/addon/doadddomain.html?domain=$dom&user=$user&dir=$dir&pass=$addonpass";
//process the request with addondomain below
$sock = @fsockopen($host,2082);
if(!$sock) {
print('Socket error');
exit();
}
//authenticate the connection
$authstr = "$ownername:$passw";
//make the passphrase slightly more difficult to decipher
$pass = base64_encode($authstr);
$in = "GET $request\r\n";
$in .= "HTTP/1.0\r\n";
$in .= "Host:$host\r\n";
$in .= "Authorization: Basic $pass\r\n";
$in .= "\r\n";
//process
fputs($sock, $in);
while (!feof($sock)) {
$result .= fgets ($sock,128);
}
fclose( $sock );
そのサイトに転送するには、新しいサイトの DNS を変更する必要があります。
単一のドメインを変更するだけの場合は、そのドメインのネームサーバーを同じものに変更し、それをplesk/cpanelのアドオンとして同じフォルダに設定します。または、ドメインを転送してマスクすることもできます。それもうまくいきます。http://support.godaddy.com/help/article/422/forwarding-or-masking-your-domain-name