刚刚下载了CI 2.2,将文件夹重命名为Test1,复制到xampp的htdocs文件夹中。
通过访问http://localhost/Test1
对网站进行了测试,它启动了欢迎信息。现在添加了一个文件夹到控制器(" admin")和一个控制器(home.php)。所以结构是:
controllers
--> admin
--> home.php
--> index.php
--> welcome.php
并且home.php中的代码是
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
public function index()
{
echo 'Hello';
}
}
当我尝试访问http://localhost/Test1/admin/home
或http://localhost/Test1/admin/home/index
时,表示找不到对象(404错误)。
我还尝试将$route['admin'] = "admin/home";
添加到application\config\routes.php
,以便我可以http://localhost/Test1/admin
访问,但没有用。我错过了一个设置吗?
答案 0 :(得分:3)
您是否配置了CodeIgniter,以便它可以在没有index.php的情况下运行? 否则,正确的URL应该是这样的:
http://localhost/index.php/admin/home
或
http://localhost/index.php/admin/home/index
......对于CI来说,女巫几乎是一样的。
如果您尝试使用上述网址之一并收到欢迎信息,那就是一个好消息!以下是解决方案:您必须告诉CI不要在您的URL中使用index.php。
将下一行放入其中:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
检查您是否已删除在config / routes.php中为测试添加的行。
尝试使用相同的网址但不使用index.php访问您的管理员文件夹。
告诉我们什么是锣。
答案 1 :(得分:2)
创建一个文件htaccess.htaccess并通过以下代码。将其保存在Test1文件夹中
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /Test1/index.php/$0 [PT,L]
答案 2 :(得分:1)
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
你应该创建.htaccess文件并粘贴上面提到的行。并将该文件放入项目文件夹(Test1)。