我正在使用laravel并且需要使用laravel动态创建子域而无需进行cPanel或服务器设置。
在这里说我有abc.xyz.com,我想要创建{subdomain} .abc.xyz.com。子域名将动态。
要访问我在laravel route中使用以下代码。
Route::group(['domain' => 'abc.xyz'], function()
{
return 'Main page will be loaded';
});
Route::group(['domain' => '{subdomain}.abc.xyz'], function()
{
return 'Subdomain page will be loaded';
});
我也搜索过,但只能通过.htaccess找到。
这是执行此操作的唯一方法,还是还有其他方法可以动态创建子域。
答案 0 :(得分:2)
您的托管应支持通配符子域功能https://www.namecheap.com/support/knowledgebase/article.aspx/9191/29/how-to-create-wildcard-subdomain-in-cpanel
答案 1 :(得分:0)
前段时间我想在我的项目中动态创建一个子域名。我在Core PHP中编写代码。我认为这可能对您或其他人有所帮助。 这是我的解决方案。
然后第2步:在我的项目的主目录上,我使用以下代码创建了createSubDomain.php文件:
$subDomain = "mytestdomain";
$cPanelUser = 'user_name';
$cPanelPass = 'password';
$rootDomain = 'main_domain_name';
// $buildRequest = "/frontend/x3/subdomain/doadddomain.html?rootdomain=" . $rootDomain . "&domain=" . $subDomain;
//$buildRequest = "/frontend/paper_lantern/subdomain/doadddomain.html?rootdomain=" . $rootDomain . "&domain=" . $subDomain . "&dir=public_html/code/" . $subDomain;
$buildRequest = "/frontend/paper_lantern/subdomain/doadddomain.html?rootdomain=" . $rootDomain . "&domain=" . $subDomain . "&dir=public_html/code/";
$openSocket = fsockopen('localhost',2082);
if(!$openSocket) {
return "Socket error";
exit();
}
$authString = $cPanelUser . ":" . $cPanelPass;
$authPass = base64_encode($authString);
$buildHeaders = "GET " . $buildRequest ."\r\n";
$buildHeaders .= "HTTP/1.0\r\n";
$buildHeaders .= "Host:localhost\r\n";
$buildHeaders .= "Authorization: Basic " . $authPass . "\r\n";
$buildHeaders .= "\r\n";
fputs($openSocket, $buildHeaders);
while(!feof($openSocket)) {
fgets($openSocket,128);
}
fclose($openSocket);
$newDomain = "http://" . $subDomain . "." . $rootDomain . "/";
echo $newDomain;
在网络服务器上运行此代码后,您可以检查子域部分,创建一个新的子域,如下图所示: