Codeigniter 3.0.4 在我的服务器上出现 404 Page Not Found 错误

Posted

技术标签:

【中文标题】Codeigniter 3.0.4 在我的服务器上出现 404 Page Not Found 错误【英文标题】:Codeigniter 3.0.4 with 404 Page Not Found Error on my server 【发布时间】:2016-07-30 00:44:04 【问题描述】:

我是 Codeigniter 的新手。在我的本地主机上开发了一个网络应用程序之后。所以我将我的网站上传到服务器上,然后我导入了我的数据库。之后我更改了 database.php 文件中的数据库设置.. 并且我更改了 config.php 文件中的基本 url。

我收到 404 页面未找到。 找不到您请求的页面。我不知道出了什么问题..我搜索了很多,但没有任何帮助。我的 .htaccess 文件是空的 ..意味着里面没有一行。还有一件事是我从 godaddy 主机购买这个可能会有所帮助。

我的路线.php

$route['default_controller'] = '';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

我的控制器医生cont.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Doctorscont extends CI_Controller 

   public function index()  
         here is my code.....  */
   

和我的配置 > config.php

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

[1]:

【问题讨论】:

你的 CI 版本是多少? 【参考方案1】:

你必须在 routes.php 中定义医生的路线。

请在routes.php末尾添加这一行,然后访问

$route['doctorscont'] = 'Doctorscont';

如果您仍然收到 404 错误,请尝试如果它打开,您可能需要删除 URL 上的 index.php。对于此任务,请访问 CodeIgniter URLs Guide

编辑:

在您的根目录(与系统和应用程序相同的文件夹)下创建一个 .htaccess 文件,内容如下:

RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1 [L]

打开 config.php 并编辑这一行:

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

到这里:

$config['index_page'] = '';

现在你可以得到你想要的。

【讨论】:

你确定吗?访问doctorsplace.co/index.php/doctorscont 并查看新错误:) ya 错误是“未指定输入文件”。但是主页doctorsplace.co 首先让 Doctorscont 控制器工作,然后我们可以检查其他东西。 你在 autoload.php 中加载了哪些库?有会话库吗?如果有,请将加密密钥添加到 config.php 这与您的问题无关,我只是提供一般信息。【参考方案2】:

在版本 3+ 中,文件名必须包含每个文件的首字母大写。它将在您的 localhost 环境中以小写形式工作,但在服务器上则不行。

将文件重命名为'Docctorscont.php'你可以使用小写的类名

class Doctorscont extends CI_Controller

编辑:http://www.codeigniter.com/user_guide/general/controllers.html#let-s-try-it-hello-world

【讨论】:

在 CI3 版本中,类名和文件名都应该只有第一个字母大写。 不正确,至少没有必要。类名的首字母不必大写。 用户指南说要做CI3 codeigniter.com/user_guide/general/… 你是对的。但是我有几个小写的项目没有任何问题。但我确实知道,如果我不将文件名以大写形式显示,它就不起作用。无论如何,谢谢。【参考方案3】:

您似乎没有在 apache2 配置级别进行一些更改,请进行以下更改。

1)sudo a2enmod 重写

2)gedit /etc/apache2/apache2.conf

3) 将下面添加到您的 conf 文件的末尾

<Directory /var/www/html/>
	AllowOverride All
</Directory>

4) 通过以下命令重启 apache2 服务。 服务 apache2 重启

祝你好运。

【讨论】:

以上是关于Codeigniter 3.0.4 在我的服务器上出现 404 Page Not Found 错误的主要内容,如果未能解决你的问题,请参考以下文章

用户如何在我的 codeigniter 注册表单上上传个人资料图片

为啥 codeIgniter 显示在此服务器上未找到请求的 URL?

Codeigniter 更新无法立即在服务器上运行

在 wamp 服务器上使用 codeigniter 发送邮件时出错

CodeIgniter 中视频文件上传的奇怪问题

如何使用 mPDF 和 CodeIgniter 保存 PDF 文件