找不到对象! codeigniter 项目中的错误 404

Posted

技术标签:

【中文标题】找不到对象! codeigniter 项目中的错误 404【英文标题】:Object not found! Error 404 in codeigniter project 【发布时间】:2015-07-19 20:59:11 【问题描述】:

我看到其他用户提出了类似的问题,但没有一个对我有用。我有一个 CodeIgniter 项目,它在我的本地主机中运行得非常好。我创建了虚拟主机,以便可以托管许多项目。我确实得到了网站的第一页(登录页面),但是在登录系统时,我得到了下面显示的错误,而不是下一个有效页面。

找不到对象!在此服务器上找不到请求的 URL。这 引用页面上的链接似乎是错误的或过时的。请 通知该页面的作者该错误。如果你认为这是一个 服务器错误,请联系站长。错误 404 127.0.0.1 Apache/2.4.10 (Win32) OpenSSL/1.0.1i php/5.6.3

这是来自www/site/log.../的错误日志

[Sat May 09 01:10:30.703354 2015] [core:error] [pid 5060:tid 1680] [client 127.0.0.1:57053] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Sat May 09 01:10:30.703354 2015] [core:error] [pid 5060:tid 1680] [client 127.0.0.1:57053] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Sat May 09 01:10:30.703354 2015] [core:error] [pid 5060:tid 1680] [client 127.0.0.1:57058] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Sat May 09 01:10:30.703354 2015] [core:error] [pid 5060:tid 1680] [client 127.0.0.1:57058] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

还有我的 .htaccess 文件

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /accounting/
    RewriteCond %REQUEST_FILENAME !-f
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

我的虚拟主机设置:

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:/www/saseco"
    ServerName saseco.dev
    ServerAlias www.saseco.dev
    CustomLog "C:/www/saseco/logs/saseco.local.access.log" combined
    ErrorLog "C:/www/saseco/logs/saseco.local.error.log"
    <Directory "C:/www/saseco">
        AllowOverride All
        Require all Granted
    </Directory>
</VirtualHost>

我的登录控制器的部分 sn-p:

function user_login()
    
        if(isset($_POST['enter']))  //Login button pressed
        
            $data = $_POST;
            $check = $this->login_model->login_match($data);

谁能告诉我哪里出错了?

【问题讨论】:

产生此错误的 URL 是什么? 这是登录页面的url。 http://www.saseco.dev/,点击登录按钮后生成的url为http://127.0.0.1/saseco/login/user_login@TimBrownlaw 为什么你的RewriteRule被注释掉了? 我试图检查错误是否由于任何这些规则而出现,所以我在@Mike Rockett 在这里发帖时发表了评论并忘记取消评论 我也这么想 - 只是想确定一下。 【参考方案1】:

好的,所以在您没有向我们展示的代码中 - 您需要在创建 http://127.0.0.1/saseco/login/user_login 的位置更改它并使其生成 http://www.saseco.dev/login/user_login 因为根据您的虚拟主机设置,这是两个非常不同的位置。

所以你需要像&lt;?php echo base_url('login/user_login');?&gt;这样的东西 并确保在 /application/config/config.php 中正确配置了 $config['base_url'] 。 试试

$config['base_url'] = '';

或将其硬编码为

$config['base_url'] = 'http://www.saseco.dev/';

补充: 不知道您为什么将 RewriteBase 设置为会计,所以请尝试更改

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /accounting/
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
#RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
#RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

【讨论】:

感谢@TimBrownlaw,将之前设置为http://127.0.0.1/saseco/' 的基本网址更改为您建议的网址。但这并没有解决问题 所以如果你在浏览器中输入saseco.dev/login 就无法获取页面?如果不是 - 那么 http://www.saseco.dev/index.php/login/ http://saseco.dev/login 导致Object Not found errorhttp://www.saseco.dev/index.php/login/ 显示登录页面,但是当单击登录按钮时,它给了我Object not found error @TimBrownlaw 你为什么有 RewriteBase /accounting/ ?只需将它作为 RewriteBase / 看看它对你有什么作用! 我在不知不觉中复制了另一个项目的 .htaccess 文件,对于 saseco,RewriteBase 设置为 RewriteBase /【参考方案2】:
<?

?>

试试这个:

<?php 

?>

它对我有用。

【讨论】:

以上是关于找不到对象! codeigniter 项目中的错误 404的主要内容,如果未能解决你的问题,请参考以下文章

我一直在codeigniter的ajax网址中找不到404错误

无缘无故找不到Codeigniter 404页面

Codeigniter:调用控制器时出现 404

在 codeigniter 上找不到对象

Codeigniter:在服务器中找不到请求的 URL

致命错误:在 codeigniter 中找不到类