如何在 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你会找到答案。

https://laracasts.com/discuss/channels/general-discussion/dynamic-sub-domain-creation-on-new-user-registration-in-laravel-5-and-wampserver

然后

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 库。它易于使用并自动处理路线、租户数据库等。

您可以在 https://github.com/stancl/tenancy

找到它