0

I am having a little trouble with base_url in codeigniter, let's say if I don't set my $config['base_url'] in the config/config.php file, calling base_url will produce [::1], this is not what I want, I want it to return localhost, so I set $config['base_url'] = 'localhost', yup it return localhost/bla/bla

when accessed locally, HOWEVER if I access my project remotely from another computer, it DOES keep returning 'localhost' too while what I want is to return the base_url as in the ip address of the server (i.e 192.168.1.8 etc).

I am very sure CI team has thought this through and has a special solution or parameter in the base_url however I wasn't able to find it or I am not searching enough. Anyway thanks in advance.

Abdulla Nilam
  • 36,589
  • 17
  • 64
  • 85
Charas
  • 1,753
  • 4
  • 21
  • 53

2 Answers2

1

You can assign base_url dynamically using host

$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/';
B. Desai
  • 16,414
  • 5
  • 26
  • 47
  • You shouldn't do that. "| If it is not set, then CodeIgniter will try guess the protocol and path | your installation, but due to security concerns the hostname will be set | to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise. | The auto-detection mechanism exists only for convenience during | development and MUST NOT be used in production!" – Callombert Feb 21 '17 at 12:10
  • Thanks mate! Your solution is actually what I'm looking for, however I'm not sure if this is good practice ?.. Thanks anyway. – Charas Feb 21 '17 at 13:39
  • As per Codeigniter's documentation this should NOT be used in production. @Charas – Callombert Feb 21 '17 at 13:46
  • @Callombert Thanks! then can you suggest me what is supposed to be used in production ? – Charas Feb 21 '17 at 14:26
1

To use base_url(), you have to load the URL Helper first

$this->load->helper('url');

Or you can autoload it by changing application/config/autoload.php

Or just use

 $this->config->base_url();

Same applies to site_url().

and use like this

<link rel="stylesheet" href="<?php echo base_url(); ?>css/default.css" type="text/css" />

you can follow this url

Community
  • 1
  • 1