我下载了使用CodeIgniter编写的PHP脚本。当我从localhost运行它时,在转到admin文件夹时,它再次显示localhost。此外,当从我的Web主机运行时,它显示500内部服务器错误。
我从http://localhost/myproj开始运行该网站。然后,当我尝试转到位于http://localhost/myproj/administrator的管理页面时,它会产生500内部服务器错误。
我在这里读到这可能是由于.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
请帮帮我。我知道这可能是一个非常小的问题,但我无法找到错误。
答案 0 :(得分:19)
500错误(使用CodeIgniter)的问题,使用不同的apache设置,当PHP配置出错时显示500错误。
以下是CodeIgniter触发500错误的方法:
请检查您的apache错误日志,那里应该有一些有趣的信息。
答案 1 :(得分:4)
为了防止其他人遇到这个问题,我继承了一个较旧的CodeIgniter项目,并且在安装它时遇到了很多麻烦。
我浪费了大量时间尝试创建网站的本地安装并尝试了一切。最后,解决方案很简单。
问题是较旧的CodeIgniter版本(如1.7及以下版本)不适用于PHP 5.3。解决方案是切换到PHP 5.2或更旧版本。
答案 2 :(得分:2)
您是否尝试从网站网址中删除index.php,对吗?
尝试将$config['uri_protocol']
设置为REQUEST_URI
而不是AUTO
。
答案 3 :(得分:1)
删除httpd.conf中的注释(apache配置文件):
LoadModule rewrite_module modules/mod_rewrite.so
答案 4 :(得分:1)
尝试使用.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
答案 5 :(得分:0)
每当我在子目录中运行CodeIgniter时,我都会将RewriteBase
设置为它。尝试将其设置为/myproj/
而不是/
。
答案 6 :(得分: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 [...];
}
}
干杯
答案 7 :(得分:0)
我知道我迟到了,但这对某人有帮助。
检查重写引擎是否为enabled。
如果没有,请启用重写引擎并重新启动服务器。
sudo a2enmod rewrite
sudo service apache2 restart
答案 8 :(得分:0)
如果wampserver版本2.5然后将apache配置更改为
httpd.conf(apache配置文件): 从
#LoadModule rewrite_module modules/mod_rewrite.so**
要删除#
LoadModule rewrite_module modules/mod_rewrite.so**
这对我来说很好
答案 9 :(得分:0)
这对我来说很好
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
答案 10 :(得分:0)
确保您的根index.php
文件具有正确的权限,其权限必须为0755
或0644