title: Codeigniter 4 - Call to undefined function App\Controllers\base_url() on live server
body: <p>Codeigniter 4 base_url() is working fine on localhost (even using ip addresses like <a href="http://192.168.0.2/" rel="nofollow noreferrer">http://192.168.0.2/</a>) </p>
  
  <p>But on <strong>uploading it on a live server, i get the error below</strong>.</p>
  
  <pre><code>Call to undefined function App\Controllers\base_url()
  </code></pre>
  
  <p>I have set the base_url in the App\Config\App.php file and tried to autload the url helper in App\Config\BaseController.php file as shown below</p>
  
  <pre><code>public $baseURL = 'http://domainname.com/'; // App.php file
  
  protected $helpers = ['url']; // BaseController.php file
  </code></pre>
  
  <p>I also tried to load the <strong>url_helper</strong> in the controller function like</p>
  
  <pre><code>helper('url'); // my_controller.php file
  </code></pre>
  
  <p>I didn't change anything in the .htaccess file. Its the same that comes with ci4 installation.</p>
  
  <p>Any idea what might be causing the issue?</p>
  
  <p>The .htaccess file is as follows:</p>
  
  <pre><code># Disable directory browsing
  Options All -Indexes
  
  # ----------------------------------------------------------------------
  # Rewrite engine
  # ----------------------------------------------------------------------
  
  # Turning on the rewrite engine is necessary for the following rules and features.
  # FollowSymLinks must be enabled for this to work.
  &lt;IfModule mod_rewrite.c&gt;
      Options +FollowSymlinks
      RewriteEngine On
  
      # If you installed CodeIgniter in a subfolder, you will need to
      # change the following line to match the subfolder you need.
      # http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase
      # RewriteBase /
  
      # Redirect Trailing Slashes...
      RewriteCond %{REQUEST_FILENAME} !-d
          RewriteRule ^(.*)/$ /$1 [L,R=301]
  
      # Rewrite "www.example.com -&gt; example.com"
      RewriteCond %{HTTPS} !=on
      RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
      RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
  
      # Checks to see if the user is attempting to access a valid file,
      # such as an image or css document, if this isn't true it sends the
      # request to the front controller, index.php
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php/$1 [L]
  
      # Ensure Authorization header is passed along
      RewriteCond %{HTTP:Authorization} .
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  &lt;/IfModule&gt;
  
  &lt;IfModule !mod_rewrite.c&gt;
      # If we don't have mod_rewrite installed, all 404's
      # can be sent to index.php, and everything works as normal.
      ErrorDocument 404 index.php
  &lt;/IfModule&gt;
  
  # Disable server signature start
      ServerSignature Off
  # Disable server signature end
  
  
  </code></pre>