CodeIgniter Anchor错误:此服务器上找不到URL

时间:2014-02-09 00:21:50

标签: php codeigniter anchor codeigniter-2

我已经花了好几个小时才使一个简单的锚链工作没有成功。

我的控制器是

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

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

我的template.php视图基本上是一个带

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

我在views目录中也有一个contact.php。

我的config.php

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

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

template.php加载并点击链接“contato”时,我想将系统驱动到负责打开页面contact()的函数contact.php。但是,我有以下错误:

  

在此服务器上找不到“/ localhost / index.php / welcome / contact”

缺少什么?

1 个答案:

答案 0 :(得分:3)

base_url配置必须包含协议尾随斜杠

来自config.php文件:

  

CodeIgniter根目录的URL。通常,这将是您的基本网址,
  带尾部斜杠:

http://example.com/
     

如果未设置,则CodeIgniter将猜测协议,域
  和安装的路径。

因此,您可以按如下方式设置base_url,或者在这种情况下,只需将其留空:

$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/';

旁注:,以便首先使用{hel}文件之类的网址帮助功能,加载帮助文件anchor() (或通过$this->load->helper('url');配置文件自动加载帮助程序。)


为什么autoload.php配置会影响base_url功能?

anchor()函数,uses site_url()辅助函数,用于确定超链接的URL地址。

site_url()本身,uses two base_url and index_page配置创建URL地址。

因此,如果您为anchor()和/或base_url配置分配了错误的值,则index_page功能将无法正常运行。