如何在 Laravel 中动态创建子域?
How to create subdomain in Laravel dynamically?
在我的 Windows/System32/drivers/etc/hosts 中,我有这个:
127.0.0.1 localhost
127.0.0.1 site.dev
127.0.0.1 *.site.dev
在我的 xampp/apache/conf/extra/httpd-vhost 中,我有这个:
<VirtualHost site.dev>
DocumentRoot "C:/xampp_7/htdocs/"
<Directory "C:/xampp_7/htdocs/">
</Directory>
</VirtualHost>
<VirtualHost *.site.dev>
DocumentRoot "C:/xampp_7/htdocs/"
<Directory "C:/xampp_7/htdocs/">
</Directory>
</VirtualHost>
现在,如果我要 运行 http://site.dev/project/public,它正在运行。我有这条路线命令:
Route::group(['domain' => '{subdomain}.site.dev'], function($subdomain) {
return $subdomain;
});
如果我打开 http://sub.site.dev/startscript/public/ ,我会收到 "This site can’t be reached".
的错误
程序的功能是可以创建子目录。例如,我有一个商业网站。我可以access/create这样。
inventory.mybusiness.com
sales.mybusiness.com
ad.mybusiness.com
我已经解决了。我从这个答案中使用了 Acyrlic DNS 代理。查看下面link你会找到答案。
然后
Route::group(['domain' => '{account}.dns.dev'], function () {
Route::get('/', function ($account) {
return $account;
});
});
正在工作。
我正在使用 laravel 5 以上的版本
$appRoutes = function() {
Route::get('/',function(){
return view('welcome');
});
};
Route::group(['subdomain' => '{subdomain}.yoursitename.com'], $appRoutes );
将此代码放入您的路由文件中。
但在我的例子中,laravel 应用程序被放置在根目录之后,所以使用子域路由这样
$appRoutes = function() {
Route::get('/foldername/',function(){
return view('welcome');
});
};
Route::group(['subdomain' => '{subdomain}.yoursitename.com/foldername'], $appRoutes );
如果您打算开发多租户应用程序,可以使用 TenancyForLaravel
库。它易于使用并自动处理路线、租户数据库等。
找到它
在我的 Windows/System32/drivers/etc/hosts 中,我有这个:
127.0.0.1 localhost
127.0.0.1 site.dev
127.0.0.1 *.site.dev
在我的 xampp/apache/conf/extra/httpd-vhost 中,我有这个:
<VirtualHost site.dev>
DocumentRoot "C:/xampp_7/htdocs/"
<Directory "C:/xampp_7/htdocs/">
</Directory>
</VirtualHost>
<VirtualHost *.site.dev>
DocumentRoot "C:/xampp_7/htdocs/"
<Directory "C:/xampp_7/htdocs/">
</Directory>
</VirtualHost>
现在,如果我要 运行 http://site.dev/project/public,它正在运行。我有这条路线命令:
Route::group(['domain' => '{subdomain}.site.dev'], function($subdomain) {
return $subdomain;
});
如果我打开 http://sub.site.dev/startscript/public/ ,我会收到 "This site can’t be reached".
的错误程序的功能是可以创建子目录。例如,我有一个商业网站。我可以access/create这样。
inventory.mybusiness.com
sales.mybusiness.com
ad.mybusiness.com
我已经解决了。我从这个答案中使用了 Acyrlic DNS 代理。查看下面link你会找到答案。
然后
Route::group(['domain' => '{account}.dns.dev'], function () {
Route::get('/', function ($account) {
return $account;
});
});
正在工作。
我正在使用 laravel 5 以上的版本
$appRoutes = function() {
Route::get('/',function(){
return view('welcome');
});
};
Route::group(['subdomain' => '{subdomain}.yoursitename.com'], $appRoutes );
将此代码放入您的路由文件中。
但在我的例子中,laravel 应用程序被放置在根目录之后,所以使用子域路由这样
$appRoutes = function() {
Route::get('/foldername/',function(){
return view('welcome');
});
};
Route::group(['subdomain' => '{subdomain}.yoursitename.com/foldername'], $appRoutes );
如果您打算开发多租户应用程序,可以使用 TenancyForLaravel
库。它易于使用并自动处理路线、租户数据库等。