500 内部服务器错误 CodeIgniter htaccess mod_rewrite

Posted

技术标签:

【中文标题】500 内部服务器错误 CodeIgniter htaccess mod_rewrite【英文标题】:500 Internal Server Error CodeIgniter htaccess mod_rewrite 【发布时间】:2014-08-21 15:50:46 【问题描述】:

我在 Windows 上编写了我的 Web 应用程序,并将其推送到运行 Ubuntu Linux 的服务器上。这是我的 .htaccess 文件:

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

<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  ErrorDocument 404 /index.php
</IfModule>

我在 /etc/apache2/sites-available/default 的文件如下:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

我在我的 ubuntu 服务器的命令行中输入了 sudo a2enmod rewrite,它说 mod_rewrite 已经打开。

当我通过我的 codeigniter 应用程序进行调试时,错误似乎出现在 CodeIgniter.php 的第 308 行,即:

$CI = new $class();

谁能告诉我这是怎么回事?

【问题讨论】:

尝试将AllowOverride FileInfoRequire all granted 改为***.com/a/22526144/661872 【参考方案1】:

在您的 CI 项目文件夹中创建一个 .htaccess 文件。 在文件中输入以下代码。

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

【讨论】:

【参考方案2】:

我必须编辑:

/etc/apache2/apache2.conf

并设置:

<Directory /var/www/html>
    # ... other directives...
    AllowOverride All
 </Directory>

然后重启apache,以便读取上面的.htaccess代码。

【讨论】:

【参考方案3】:
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1 [L]  

试试这个 .htaccess 代码,然后重启你的 apache

如果这不起作用,请尝试此链接

How to enable mod_rewrite for Apache 2.2

【讨论】:

以上是关于500 内部服务器错误 CodeIgniter htaccess mod_rewrite的主要内容,如果未能解决你的问题,请参考以下文章

我希望 codeigniter 回显 php 错误而不是 500 内部错误

贝宝沙盒帐户创建 500 内部服务器错误

无法在 codeigniter 中提交数据

codeigniter 3,文件上传给出 HTTP ERROR 500

weblogic错误500 - 内部服务器错误[重复]

.htaccess 500 wamp 中的内部服务器错误