【问题标题】:URI ROUTING in CodeIgnitor_2.1.3 throwing "Not Found" errorCodeIgnitor_2.1.3 中的 URI ROUTING 引发“未找到”错误
【发布时间】:2013-04-12 07:22:06
【问题描述】:

我已经安装了 CodeIgniter_2.1.3 并在

中运行
  • Windows 7
  • Wamp 服务器 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

现在我希望在浏览器上运行上面的这个 url 给我页面

你好,我在新方法中

但是我收到了错误消息。

找不到

在上未找到请求的 URL /CodeIgniter_2.1.3/products/catlog 这个服务器。

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

【问题讨论】:

标签: php codeigniter apache2 wampserver


【解决方案1】:

你是否访问过codeigniter文档网站,你可以从这个url获取如何创建静态页面的帮助

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

【讨论】:

  • 始终默认控制正常工作。其他控制方法不接受
  • 您是否尝试过使用 htaccess 进行重定向
  • 是的,我按照标准规范进行了操作,但现在页面显示“欢迎使用 CodeIgniter!”而不是运行 getOneMethod
【解决方案2】:

对于给定的 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/

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

【讨论】:

  • 为什么不将“CodeIgniter_2.1.3”文件夹重命名为更易于键入的名称?
  • @stdspec,首先我尝试了http://localhost/CodeIgniter_2.1.3/index.php/products/catlog/,但它现在显示“欢迎使用 CodeIgniter!”消息。
  • 第二次我确实创建了 .htaccess 文件,但仍然指向“欢迎使用 CodeIgniter!”尝试此网址时的消息http://localhost/CodeIgniter_2.1.3/index.php/products/catlog/
  • @stdspec 我没有重命名“CodeIgniter_2.1.3”,因为它只是全新安装。
猜你喜欢
  • 2012-12-24
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-18
相关资源
最近更新 更多