CodeIgniter Anchor error: URL not found on this server

依然范特西╮ 提交于 2019-12-20 03:12:56

问题


I have been for hours to make a simple anchor link working without success.

My controller is

class Welcome extends CI_Controller {
    public function index()
    {
        $this->load->view('template');
    }

    public function contact()
    {
        $this->load->view('contact');
    }        
}

My template.php view is basically a file with

<a class="menuhref"> <?php echo anchor('welcome/contact/','Contato')?> </a>

I also have a contact.php in the views directory.

My config.php is

$config['base_url']   = 'localhost'; 

$config['index_page'] = 'index.php';

When the template.php loads and I click in the link "contato" I would like to drive the system to the function contact() that would be responsible to open the page contact.php. However, I have got the following error:

"/localhost/index.php/welcome/contact" was not found on this server

What is missing?


回答1:


The base_url config MUST contains the protocol and a trailing slash as well.

From the config.php file:

URL to your CodeIgniter root. Typically this will be your base URL,
WITH a trailing slash:

http://example.com/

If this is not set then CodeIgniter will guess the protocol, domain
and path to your installation.

Hence, you could set the base_url as follows, or in this case simply leave it blank:

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

# base_url should be absolute, If you've installed CI in sub-folder:
$config['base_url'] = 'http://localhost/path/to/codeigniter_folder/';

Side-note: in order to use URL helper functions such as anchor(), load the helper file at first: $this->load->helper('url'); (or load the helper automatically via autoload.php config file).


Why does base_url config affect anchor() function?

anchor() function, uses site_url() helper function to determine the URL address of the hyperlink.

And the site_url() itself, uses two base_url and index_page configs to create the URL address.

Hence if you assign a wrong value to base_url and/or index_page configs, the anchor() function won't work properly.



来源:https://stackoverflow.com/questions/21653550/codeigniter-anchor-error-url-not-found-on-this-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!