CodeIgnitor_2.1.3中的URI ROUTING抛出“Not Found”错误

时间:2013-04-12 07:22:07

标签: php codeigniter apache2 wampserver

我已安装 CodeIgniter_2.1.3 并在

中运行
  • Windows 7
  • Wamp Server 2.1
  • PHP 5.3.5
  • Apache 2.2.17

\ applicationconfig \ routes.php 中,我创建了

$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['products/catlog'] = "welcome/getOneMethod";

\ application \ controllers \ welcome.php 中,我创建了一个方法

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

public function getOneMethod()
{
        echo "hi im in newMethod";
}
  

http://localhost/CodeIgniter_2.1.3/products/catlog

现在我希望在浏览器上面运行此网址给我页面

  

hi im in newMethod

但我收到了错误信息。

  

未找到

     

找不到请求的网址/CodeIgniter_2.1.3/products/catlog   这个服务器。

我该怎么做才能让它正常工作?

2 个答案:

答案 0 :(得分:0)

您是否访问过codeigniter文档网站,您可以从此网址获取如何创建静态页面的帮助

http://ellislab.com/codeigniter/user-guide/tutorial/static_pages.html

答案 1 :(得分:0)

对于给定的url路由和控制器。

你需要使用:

http://localhost/CodeIgniter_2.1.3/index.php/products/catlog/

可以使用htaccess重写规则删除url中的index.php部分。

在/codeigniter2.1.3/文件夹中创建.htaccess文件并输入以下规则:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /CodeIgniter_2.1.3/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /CodeIgniter_2.1.3/index.php [L]
    </IfModule>

注意:这可能不是最好的方法。

编辑:

确保控制器完全如下:

class Welcome extends CI_Controller {

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

    public function getOneMethod() {
        echo "hi im in newMethod";
    }

}

,路线如下:

$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['products/catlog'] = "welcome/getOneMethod";

暂时删除htacces,并使其与url中的index.php一起使用。

即:

http://localhost/CodeIgniter_2.1.3/index.php/products/catlog/

注意:由于您可以看到欢迎消息,因此您的安装或服务器没有问题。可能有一些语法错误。所以我建议你复制粘贴上面的代码,因为我检查了它们,他们正在工作。