Set up the base url in codeigniter

2019-01-01 08:00发布

问题:

I have the directory structure like this in code igniter:

 Appsite
    -website
       -application
        -images

When I accessing the image in index.php I used: <img src=\"http://localhost/Appsite/website/images/images.PNG\"

And the href is: <li class=\"\"><a href=\"http://localhos/tAppsite/website/index.php/home/\">Home</a></li>

I think it is not a good practice to include the http://localhost when accessing the images or libraries in code igniter. So I tried to change the $config[\'base_url\'] in config.php to $config[\'base_url\'] = \"http://\".$_SERVER[\"HTTP_HOST\"].\"/\";

And now I update my image source and other library source I remove the localhost and the name of my directory folder:

<img src=\"images/images.PNG”> <li class=\"\"><a href= <?php echo base_url;?> /website/index.php/home/\">Home</a></li>

But I get errors. it says object not found. Can some help me?

回答1:

In Config.php

$config[\'base_url\'] = \'http://localhost/Appsite/website/\';
$config[\'index_page\'] = \'\';

# If online site
# $config[\'base_url\'] = \'http://stackoverflow.com/\';

In .htaccess (outside application folder) - To remove index.php in URL

RewriteEngine on
RewriteCond $1 !^(index\\.php|assets|image|resources|robots\\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

To accessing URL

<a href=\"<?php echo base_url();?>contollerName/methodName\"> click here</a>

To access image

<img src=\"<?php echo base_url();?>images/images.PNG”>

To access CSS

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

To use base_url load URL helper from autoload.php



回答2:

In your config.php set the base_url() as,

$config[\'base_url\'] = \'http://localhost/projectname/\';

In your view load the image as,

<img src=\"<?php echo base_url();?>images/images.PNG”>


回答3:

Just put this it will take the automatically correct path of the project and set base URL

$site_url = ((isset($_SERVER[\'HTTPS\']) && strtolower($_SERVER[\'HTTPS\']) !== \'off\') || (isset($_SERVER[\'HTTP_X_FORWARDED_PROTO\']) && $_SERVER[\'HTTP_X_FORWARDED_PROTO\'] == \'https\')) ? \'https\' : \'http\';
$site_url .= \'://\' . (isset($_SERVER[\'HTTP_HOST\']) ? $_SERVER[\'HTTP_HOST\'] : \'\');
$site_url .= str_replace(basename($_SERVER[\'SCRIPT_NAME\']), \'\', $_SERVER[\'SCRIPT_NAME\']);

$config[\'base_url\'] = $site_url;