Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an easy way to create subdomains on codeigniter?

Is there an easy way to create subdomains on codeigniter like api.site.com?

like image 975
Tapha Avatar asked Oct 06 '10 14:10

Tapha


People also ask

Can I create subdomains?

Rather than registering a new domain name, you can always create a subdomain using your existing domain name. A subdomain is an addon to your primary domain with its unique content. It is a separate part of your website that operates under the same primary domain name without you purchasing a new domain.


2 Answers

The approach you take depends on how different the subdomain is from the main site. If they are very similar and will be using the same codebase:

$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/';

If you need some settings to be different on a different subdomain, you could create a config file like so:

switch($_SERVER['HTTP_HOST']){
   case 'www.example.com':
       // settings specific to www subdomain
       $config['foo'] = 'bar';
   break;

   case 'apl.example.com':
       // settings specific to apl subdomain
       $config['foo'] = 'baz';
   break;
}

Another approach would include setting up a separate application folder for the subdomain, but pointing at the same system folder. If you organize your filesystem like this:

example.com
  common
    system
    application
  www
    htdocs
    application
  apl
    htdocs
    application

You could then point the index.php file in each htdocs folder at the common/system directory. You could also put code you want to share between all subdomains in common/application and include them from your code.

like image 139
bradym Avatar answered Nov 15 '22 22:11

bradym


You need to create the subdomain in your DNS or else setup a wildcard for any subdomain to work first.

Once you've got that running I guess it's a case of switching the base_url in your config file.

if ($_SERVER['SERVER_NAME'] == "api.blah.com") {
    $config['base_url'] = "http://api.blah.com/";
}
else {
    $config['base_url'] = "http://www.blah.com/";   
}
like image 20
fire Avatar answered Nov 15 '22 22:11

fire