CodeIgniter:404错误导致500 /路由无效错误

时间:2012-01-13 20:22:10

标签: php .htaccess codeigniter

我遇到了一个奇怪的问题。我在某些页面上遇到500错误(不存在而我正在尝试它们只会导致404错误并对此进行测试)当我尝试导致错误时,有时我会得到实际的404错误页面

这是我的.htaccess:

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|resources|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] AddHandler cgi-script .pl

这会导致这种情况吗?有人想过可能导致这种情况的原因吗?我将base_url设置为正确的域。问题似乎围绕RewriteEngine和RewriteBase行,但我无法弄清楚如何配置它们。问题似乎不在我的路线中。如果我注释掉除默认控制器和404_override之外的所有内容,我仍会得到同样的错误:

Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.

2 个答案:

答案 0 :(得分:0)

在您的配置文件中,您确保将$ config [' base_url']设置为'' ?使用干净的网址时需要这样做。

要尝试的另一件事是将$ config [' log_threshold']设置为4,然后您就可以开始查看错误发生的确切位置。

仅供参考,这是一个众所周知的好.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt|humans\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

答案 1 :(得分:0)

我建议您检查路由配置$route['default_controller']=valid controller。如果这不会导致错误,那么您可以更改.htaccess。

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