Dynamic creation of subdomains

前端 未结 2 1315
难免孤独
难免孤独 2020-12-28 11:10

I\'m creating a website using MVC framework (Yii) and I need to dynamically create subdomains, i.e. http://company.website.com

So, in order to achieve this

相关标签:
2条回答
  • 2020-12-28 11:38

    If I understand your question, the 'company' component of the URL is a variable company name. I'll continue my answer under that assumption.

    Another option would be to create a company module (I'll call it 'Companies' for now), and use the CUrlManager rules to route to that controller. E.g.

    array(
        'http://<company:\w+>.website.com/user/register' => '/companies/user/register',
        'http://<company:\w+>.website.com/<_c:\w+>/<_a:\w+>' => '/companies/<_c>/<_a>' // more generic option
    ),
    

    The 'company' string will be passed to the application as $_GET['company'] and you can use this parameter in your CompaniesModule.php file to load some company specific data.

    Please note that without some other rule to handle www.website.com requests (as per Grey Teardrop's answer) you will get errors on requests to that subdomain.

    0 讨论(0)
  • 2020-12-28 11:50

    You could include hostname into your routing rules array. For example, you could create rules

    array(
        'http://www.website.com/user/register' => 'user/register',
        'http://<company:\w+>.website.com/user/register' => 'other/route',
    )
    

    and check for company parameter in your other/route action. Please note that http:// is required for those rules to work. See CUrlManager documentation for more details.

    P.S. If controllers for http://www.website.com and http://company.website.com/user/register are completely different it could be better to set up two applications for those sites.

    0 讨论(0)
提交回复
热议问题