如何动态创建Laravel中的子域名?

时间:2016-11-25 11:41:58

标签: php apache laravel subdomain hosts

在我的Windows / System32 / drivers / etc / 主机中,我有这个:

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/,我会收到错误#34;无法访问此网站&#34;。

程序的功能是它可以创建子目录。例如,我有一个商业网站。我可以像这样访问/创建。

inventory.mybusiness.com
sales.mybusiness.com
ad.mybusiness.com

3 个答案:

答案 0 :(得分:12)

我已经解决了。我从这个答案中使用了Acyrlic DNS Proxy。查看以下链接,您将找到答案。

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;
    });
});

现在正在运作。

答案 1 :(得分:0)

我正在使用高于5的laravel版本

$appRoutes = function() {
    Route::get('/',function(){
        return view('welcome');
    }); 
};

Route::group(['subdomain' => '{subdomain}.yoursitename.com'], $appRoutes );

将此代码放在您的路由文件中。
但是在我的情况下,laravel应用程序放置在根目录之后,因此使用了像这样的子域Route

   $appRoutes = function() {
        Route::get('/foldername/',function(){
            return view('welcome');
        }); 
    };

 Route::group(['subdomain' => '{subdomain}.yoursitename.com/foldername'], $appRoutes );

答案 2 :(得分:0)

如果您打算开发多租户应用程序,则可以使用TenancyForLaravel库。它易于使用,并自动处理路由,租户数据库等。

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

上找到它