我正在使用codeigniter构建一个网站。我已将默认控制器设置为袖口。 因此,每当用户键入域名时,它就会控制该控制器。
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'])).'/';
似乎无法弄清楚这个问题。
答案 0 :(得分:3)
您错过了控制器名称
<a href="<?php echo base_url();?>cuff/navigate">our collection</a>
答案 1 :(得分: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>
答案 2 :(得分:0)
问题出在您的路由中。
修改 routes.php (位于 ../ application / config / 文件夹中)并添加以下代码:
$route['navigate'] = "Cuff/navigate";
有关Codeingiter URI路由的更多信息:
http://codeigniter.com/user_guide/general/routing.html
希望这有助于你。
答案 3 :(得分:0)
只需使用
"<?php echo site_url();?>/cuff/navigate">our collection</a>