我正在尝试将此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,我做错了什么?任何建议都会有所帮助,谢谢!
答案 0 :(得分:2)
您的控制器应为类名的大写:
class Test extends CI_Controller {
就访问它而言,网址应为:
修改 修复了我注意到的子文件夹
http://mydomain.com/pete/ci_test/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
或