访问子文件夹 codeigniter 中的控制器
accessing controller in subfolder codeigniter
刚下载CI2.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
访问,但没有用。我是否缺少设置?
创建一个文件 htaccess.htaccess 并在其中添加以下代码。将其保存在您的 Test1 文件夹中
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /Test1/index.php/[=10=] [PT,L]
RewriteEngine on
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
您应该创建 .htaccess 文件并粘贴上面提到的行。并将该文件放入您的项目文件夹(Test1)。
您是否配置了 CodeIgniter,使其可以 运行 而无需 index.php ?
否则正确的 url 应该是这样的:
http://localhost/index.php/admin/home
或
http://localhost/index.php/admin/home/index
... 与 CI 几乎相同。
如果您尝试上述方法之一 url 并且收到欢迎消息,那真是个好消息!这是解决方案:您必须告诉 CI 不要在 URL.
中使用 index.php
打开您的 .htaccess 或在您的网站根目录中创建一个,
将下一行放入其中:
RewriteEngine on
RewriteCond !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/ [L]
检查您是否删除了在 config/routes 中为测试添加的行。php。
尝试使用相同的 URL 但没有 index.php.
访问您的管理文件夹
告诉我们发生了什么。
刚下载CI2.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
访问,但没有用。我是否缺少设置?
创建一个文件 htaccess.htaccess 并在其中添加以下代码。将其保存在您的 Test1 文件夹中
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /Test1/index.php/[=10=] [PT,L]
RewriteEngine on
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
您应该创建 .htaccess 文件并粘贴上面提到的行。并将该文件放入您的项目文件夹(Test1)。
您是否配置了 CodeIgniter,使其可以 运行 而无需 index.php ? 否则正确的 url 应该是这样的:
http://localhost/index.php/admin/home
或
http://localhost/index.php/admin/home/index
... 与 CI 几乎相同。
如果您尝试上述方法之一 url 并且收到欢迎消息,那真是个好消息!这是解决方案:您必须告诉 CI 不要在 URL.
中使用 index.php打开您的 .htaccess 或在您的网站根目录中创建一个,
将下一行放入其中:
RewriteEngine on
RewriteCond !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/ [L]
检查您是否删除了在 config/routes 中为测试添加的行。php。
尝试使用相同的 URL 但没有 index.php.
访问您的管理文件夹告诉我们发生了什么。