1

我正在完全在 codeigniter 上构建一个站点。我已将默认控制器设置为 cuff。因此,每当用户键入域名时,它都会将控制权交给该控制器。

class Cuff extends CI_Controller {
 public function __construct()
       {
            parent::__construct();
            $this->load->helper('url');
       }

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

    public function navigate()
    {
        echo "test";
        exit;
}

}

在我的索引视图中,我想要一个锚点导航到我的默认控制器中的一个函数。所以当我写 的时候<a href="<?php echo base_url();?>navigate">our collection</a>,它说找不到页面。

我什至像这样设置了基本网址

$config['base_url'] = "http://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= preg_replace('@/+$@','',dirname($_SERVER['SCRIPT_NAME'])).'/';

似乎无法弄清楚这个问题。

4

4 回答 4

3

您错过了控制器名称

<a href="<?php echo base_url();?>cuff/navigate">our collection</a>
于 2012-08-24T07:32:01.633 回答
0

只需您使用

"<?php echo site_url();?>/cuff/navigate">our collection</a>
于 2012-08-27T07:40:46.743 回答
0

问题出在你的路由上。

编辑您的routes.php(位于文件夹../application/config/ 中)并添加以下代码:

$route['navigate'] = "Cuff/navigate";

有关 Codeingiter URI 路由的更多信息:http:
//codeigniter.com/user_guide/general/routing.html

希望这对您有所帮助。

于 2012-08-24T09:09:54.897 回答
0

$config['base_url'] ='';

在您的.htaccess文件中:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|js|css|favicon|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]

确保您的控制器位于控制器的文件夹中(不是任何子文件夹)并且名称正确cuff.php

尝试导航到http://yoursite/cuff/navigate

如果您仍然看到错误,请尝试将最后一行重写.htaccess为:

RewriteRule ^(.*)$ /index.php/$1 [L]

(没有问号)。

请告诉是否有帮助!

编辑:您的链接最好都采用这种形式:

<a href="<?php echo site_url('cuff/navigate');?>">Link</a>
于 2012-08-24T07:53:24.237 回答