CodeIgniter PHP Apache 500内部服务器错误

CodeIgniter PHP Apache 500内部服务器错误,php,apache,.htaccess,codeigniter,mod-rewrite,Php,Apache,.htaccess,Codeigniter,Mod Rewrite,我在CodeIgniter做了一个项目。它在本地主机上运行良好,但在远程服务器上出现“500内部服务器错误”。这是我的.htaccess文件内容: RewriteEngine On RewriteBase /ezgov RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME

我在CodeIgniter做了一个项目。它在本地主机上运行良好,但在远程服务器上出现“500内部服务器错误”。这是我的
.htaccess
文件内容:

RewriteEngine On
RewriteBase /ezgov
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

原因很可能在错误日志中解释。网站的根目录中是否有错误日志?其他地方有日志文件夹吗?原因将在此处详细说明。

打开通常位于windows中Apache安装目录中的httpd.conf

/apache/conf/httpd.conf

/etc/httpd/httpd.conf

在基于Unix的系统中。httpd.conf是一个Apache配置文件,它存储有关服务器的各种信息

搜索模块
mod_rewrite.so
或(
mod_rewrite.c
,在极少数情况下)。mod_rewrite模块用于动态重写请求的URL。大多数情况下,您会发现处于注释状态

#加载模块重写#u模块/mod#u重写。*

这里的
#
字符表示它已被注释或禁用

LoadModule rewrite\u模块/mod\u rewrite.*

在windows中删除
#
并使用命令
Apache-k restart
或在unix系统中使用
service httpd restart
重新启动Apache Http服务器。您还可以使用XAMPP/Wamp UI在windows系统中重新启动Apache

接下来在CodeIgniter项目所在的根目录中创建
.htaccess
文件,并粘贴以下代码

# index file can be index.php, home.php, default.php etc.
DirectoryIndex index.php

# Rewrite engine
RewriteEngine On

# condition with escaping special chars
RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
接下来查找CodeIgniter配置文件,该文件通常位于其配置目录中

/application/config/config.php

打开文件并将
$config['index\u page']
值设为空。看起来像这样

/*
  |--------------------------------------------------------------------------
  | Index File
  |--------------------------------------------------------------------------
  |
  | Typically this will be your index.php file, unless you've renamed it to
  | something else. If you are using mod_rewrite to remove the page set this
  | variable so that it is blank.
  |
 */
$config['index_page'] = '';
现在故事结束了。一切都会好起来的。有关httpd.config的更多信息,请访问。希望这对你有帮助。谢谢

我解决了这个错误

我被赋予了不同的数据库名称,我已通过以下步骤进行了更改:

  • 我已经使用cpanel在服务器中创建了数据库
  • 我已经创建了一个用户
  • 我已将先前创建的数据库分配给用户
  • 我用用户名和数据库名等更改了数据库设置

  • 发布此消息,以防万一对某人有帮助…

    这个问题的其他答案假设您可以访问apache的配置文件。但是,如果您在一个共享托管平台上,并且除了您应该托管文件的目录之外,您没有访问其他目录的权限:诀窍是强制php抛出所有错误,即使apache不能

    打开位于codeigniter安装根文件夹中的“index.php”

    /*switch to development environment*/
    define('ENVIRONMENT', 'development');
    
    if (defined('ENVIRONMENT'))
    {
        switch (ENVIRONMENT)
            {
                case 'development':
                error_reporting(E_ALL);
                /*added line below*/
                ini_set('display_errors', '1');
                break;
    ......
    
    进行上述更改后,立即开始显示代码的错误,我能够修复代码并使其运行

    在完成修复后,不要忘记将codeigniter环境设置为“生产”。

    尝试以下方法:

    RewriteEngine on
    RewriteCond $1 !^(index\.php|public|\.txt) 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?$1
    

    您的htaccess文件可能有问题。这对我也有帮助。

    当我在另一个网站的子文件夹中有CI时,这就解决了我的问题。谢谢,伙计。你们真是太棒了。我把这个项目转移到了同一个文件夹,同一个数据库,同一个认证,同一个url,但问题依然存在,跟着你们:)谢谢你们。完成了除httpd.conf步骤之外的所有步骤(因为VPS上的am很难),并且成功了。尝试了这个,屏幕上没有显示任何错误。我在哪里可以找到这些错误?检查浏览器的控制台,确认它是否确实是错误500或只是一个空白页。我尝试了您的代码,错误消失了,但该页是空白的。控制台中没有出现任何问题。在尝试此解决方案之前,在添加
    ini_集('display_errors','1')之后,我遇到了一个服务器错误
    我知道问题出在哪里,这是我的constant.php文件中的语法错误。我的codeigniter也有同样的错误。主机公司说我的代码有问题,但在本地主机上没有问题。无法指定一个链接,因为每次不同的链接都会出现500个错误。。