13

我下载了一个使用 CodeIgniter 编写的 PHP 脚本。当我从 localhost 运行它时,转到 admin 文件夹时,它再次显示 localhost。此外,当从我的网络主机运行时,它会显示 500 内部服务器错误。

我从http://localhost/myproj运行该站点,它可以工作。然后,当我尝试转到位于http://localhost/myproj/administrator的管理页面时,它会给出 500 Internal Server Error。

我在这里读到这可能是由于 .htaccess 文件中的代码错误。这是我现在的 .htaccess 文件

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

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

# Without mod_rewrite, route 404's to the front controller
ErrorDocument 404 /index.php

请帮我。我知道这可能是一个非常小的问题,但我无法找到错误。

4

12 回答 12

33

500 错误(使用 CodeIgniter)的问题,使用不同的 apache 设置,当 PHP 配置出错时会显示 500 错误。

下面是它如何使用 CodeIgniter 触发 500 错误:

  1. 脚本错误(PHP 配置错误、缺少软件包等...)
  2. PHP“致命错误”

请检查您的 apache 错误日志,其中应该有一些有趣的信息。

于 2011-09-12T23:43:19.983 回答
5

万一其他人偶然发现了这个问题,我继承了一个较旧的 CodeIgniter 项目并且在安装它时遇到了很多麻烦。

我浪费了大量时间尝试创建站点的本地安装并尝试了所有方法。最后,解决方案很简单。

问题是较旧的 CodeIgniter 版本(如 1.7 及更低版本)不适用于 PHP 5.3。解决方案是切换到 PHP 5.2 或更旧的版本。

于 2012-08-27T12:41:50.060 回答
4

您正试图从您的站点 URL 中删除 index.php,对吗?

尝试将您设置$config['uri_protocol']REQUEST_URI而不是AUTO.

于 2011-09-12T04:09:00.063 回答
3

试试这个到你的 .htaccess 文件:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
于 2018-03-21T13:46:14.087 回答
2

删除 httpd.conf(apache 配置文件)中的注释:

LoadModule rewrite_module modules/mod_rewrite.so 
于 2016-10-24T16:46:47.457 回答
1

每当我在子目录中运行 CodeIgniter 时,我都会设置RewriteBase它。尝试将其设置为/myproj/而不是/.

于 2011-09-11T11:37:14.380 回答
1

我知道我迟到了,但这会对某人有所帮助。

检查是否启用了重写引擎。

如果没有,请启用重写引擎并重新启动服务器。

sudo a2enmod rewrite
sudo service apache2 restart
于 2016-09-01T02:16:16.097 回答
1

如果 wampserver 版本 2.5 则将 apache 配置更改为

httpd.conf(apache配置文件): 来自

#LoadModule rewrite_module modules/mod_rewrite.so** 

要,删除#

LoadModule rewrite_module modules/mod_rewrite.so** 

这对我来说很好

于 2017-09-05T07:57:23.473 回答
1

确保您的根index.php文件具有正确的权限,其权限必须是07550644

于 2019-10-15T11:10:02.320 回答
1

派对很晚了,但我认为 CodeIgniter 中 500 个内部服务器错误的最佳方法是在 config 文件夹中的 Config.php 文件中启用错误日志功能并设置一个阈值,即 $config['log_threshold'] = 1,2,3,4 取决于您要查看的日志。

于 2021-08-23T15:12:46.220 回答
0

这可能与该线程不再相关,但希望对某人有所帮助。在过去的一个小时里,我遇到了 500 个错误,因为我的控制器返回了一个不受我(蹩脚的)服务器上运行的 php 版本支持的数组。看起来微不足道,但具有 codeigniter 错误的标志。

我不得不使用:

class emck_model extends CI_Model {

    public function getTiles(){

        return array(...);

    }

} 

代替

class emck_model extends CI_Model {

    public function getTiles(){

        return [...];

    }

}

干杯

于 2013-08-29T00:23:49.367 回答
0

这对我来说很好

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
于 2019-08-27T18:20:00.953 回答