CodeIgniter设置问题

时间:2011-05-17 17:23:38

标签: .htaccess codeigniter

我正在尝试将此URL用于codeigniter安装,刚刚安装了最新版本(2.0.2):

http://mydomain.com/pete/ci_test/accounts

所以我在routes.php中将我的默认控制器设置为test.php,在我的控制器中,test.php我有这个代码:

class test extends CI_Controller {

public function index() {
    $this->load->view('test');
}

public function accounts() {
    $this->load->view('accounts');
}
}

然后我在我的视图中有一个test.php和accounts.php,当我转到http://mydomain.com/pete/ci_test/

时会加载test.php视图

但是当我转到http://mydomain.com/pete/ci_test/accounts时,它给了我一个404.我一直在阅读“入门”,它说“默认情况下CodeIgniter使用基于段的方法”,然后给出一个类似于我的示例我在做。但后来我进一步阅读它说:“默认情况下,index.php文件将包含在您的URL中”。所以我把它添加到我的htaccess文件中(位于mydomain.com/pete/ci_test/.htaccess):

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

我确保模块正在httpd.conf中加载。它仍然没有进入我的accounts.php视图。我也尝试过:

http://mydomain.com/pete/ci_test/index.php/accounts

但另一个404,我做错了什么?任何建议都会有所帮助,谢谢!

4 个答案:

答案 0 :(得分:2)

您的控制器应为类名的大写:

class Test extends CI_Controller {

就访问它而言,网址应为:

修改 修复了我注意到的子文件夹

http://mydomain.com/pete/ci_test/test/accounts

http://mydomain.com/pete/ci_test/index.php/test/accounts

答案 1 :(得分:2)

我遇到了同样的问题,所以我环顾四周。你应该使用这个.htaccess内容。它对我有用。

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
RewriteEngine on
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]

答案 2 :(得分:1)

默认控制器是在没有url段存在时加载的 - 就是它。

如果您希望/accounts加载test控制器和accounts方法,则必须使用route这样的内容:

$route['accounts'] = 'test/accounts';

否则,您必须拥有帐户控制器或通过/test/accounts/

访问它

答案 3 :(得分:1)

onteria_是正确的,你的控制器应该是大写的。这不是要求,而是“最佳实践”。

但是,我认为控制器的命名与子文件夹的名称会让人失望。看起来您已将您的安装放在名为ci_test的文件夹中。在这种情况下,要访问它,URL应该是

http://mydomain.com/pete/ci_test/test/accounts

http://mydomain.com/pete/ci_test/index.php/test/accounts