Want to create dynamic subdomain in codeigniter?

前端 未结 2 1778
生来不讨喜
生来不讨喜 2020-12-09 00:36

In my site i want to add an functionality for user to use their username with domain.

Like in codeigniter right now i want to give the user to use their own url to l

相关标签:
2条回答
  • 2020-12-09 01:05

    Use this code in server Vhost file:

    <VirtualHost *:80>
        DocumentRoot "/home/yourdoma/public_html/yourdomain"
        ServerName yourdomain.com
        ErrorLog "logs/yourdomain.local-error.log"
        CustomLog "logs/yourdomain.local-access.log" common
        <Directory "/home/yourdoma/public_html/yourdomain">
            AllowOverride All
            Require all Granted
        </Directory>
    </VirtualHost>
    
    <VirtualHost *:80>
        DocumentRoot "/home/yourdoma/public_html/yourdomain"
        ServerName dummy-host.yourdomain.com
        ErrorLog "logs/yourdomain.com-error.log"
        CustomLog "logs/yourdomain.com-access.log" common
        ServerAlias *.yourdomain.com
        <Directory "/home/yourdoma/public_html/yourdomain">
            AllowOverride All
            Require all Granted
        </Directory>
    </VirtualHost>
    

    and For your codeigniter config file:

    $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
    $schema = isset($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'].'://' : 'http://';
    $spl_host = explode("mysite.com", $host);
    $subhost = '';
    if (count($spl_host) == 2) {
        $subhost = current($spl_host);
    }
    
    if($host == $subhost.'mysite.com') {
        $config['base_url'] = $schema.$subhost.'mysite.com';
    } else {
        $config['base_url'] = $schema.$host;
    }
    
    0 讨论(0)
  • 2020-12-09 01:07

    here's an explanation of your issue here. http://www.joehayes.org/setting-up-wildcard-dns-for-subdomains.html

    Ok if you have read the explanation on the link, you'd know that you should redirect all of your subdomains to www first. in httpd.conf file there's a virtual host definition containing only yourdomain.com to redirect all the requests to your DocumentRoot.

    **ServerAlias yourdomain.com**
    ServerAdmin webmaster@yourdomain.com
    DocumentRoot /home/yourdoma/public_html
    BytesLog domlogs/yourdomain.com-bytes_log
    ServerName www.yourdomain.com
    User yourdomain
    Group yourdomain
    CustomLog /usr/local/apache/domlogs/yourdomain.com combined
    ScriptAlias /cgi-bin/ /home/yourdomain/public_html/cgi-bin/
    

    and you should modify the ServerAlias to *.yourdomain.com to retrieve all subdomains into your Document Root folder. then you should be able to mod_rewrite or url parse your uri to succeed this.

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