CakePHP 2.1新安装缺少控制器错误

CakePHP 2.1新安装缺少控制器错误,cakephp,installation,Cakephp,Installation,我是CakePHP的新手,安装了2.1。我得到这个错误: 缺少控制器 错误:找不到Index.phpController 错误:在以下文件中创建类Index.phpController:app\Controller\Index.phpController.php 更新:我刚刚重读了你的问题,意识到你正在加载。不要那样做。由于您附加了“index.php”,它试图加载一个名为“index.php”的控制器以及该控制器的操作“index”。“index.php控制器”的结果映射路径是app\cont

我是CakePHP的新手,安装了2.1。我得到这个错误:

缺少控制器

错误:找不到Index.phpController

错误:在以下文件中创建类Index.phpController:app\Controller\Index.phpController.php

更新:我刚刚重读了你的问题,意识到你正在加载。不要那样做。由于您附加了“index.php”,它试图加载一个名为“index.php”的控制器以及该控制器的操作“index”。“index.php控制器”的结果映射路径是app\controller\index.phpController.php

由于已启用重写,请浏览到而不附加任何文件名


原始答复:

假设您使用的是Apache,请仔细检查/app/webroot目录中的.htaccess。它应包括以下内容:

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
根据您的错误,它似乎没有正确地将路径附加到index.php文件之后。

更新:我刚刚重新阅读了您的问题,意识到您正在加载。不要那样做。由于您附加了“index.php”,它试图加载一个名为“index.php”的控制器以及该控制器的操作“index”。“index.php控制器”的结果映射路径是app\controller\index.phpController.php

由于已启用重写,请浏览到而不附加任何文件名


原始答复:

假设您使用的是Apache,请仔细检查/app/webroot目录中的.htaccess。它应包括以下内容:

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

根据您的错误,它似乎没有正确地将路径附加到index.php文件之后。

最简单的解决方案是尽可能地坚持“实时环境”。 这意味着使用vhost来使用“域”,并正确地根目录到您的webroot目录:


这几乎没有出错的余地,也有助于解决其他潜在问题,如“绝对链接的资产文件”等

最简单的解决方案是尽可能靠近“实时环境”。 这意味着使用vhost来使用“域”,并正确地根目录到您的webroot目录:


如果您使用的是cakephp 2.0或更高版本,则这几乎没有出错的余地,也有助于解决其他潜在问题,如“绝对链接的资产文件”等。 ie
TaskController.php

class TasksController extends AppController {

--Your code inside class
}

如果您使用的是cakephp 2.0或更高版本,我希望这将帮助您将控制器文件名重命名为类名。 ie
TaskController.php

class TasksController extends AppController {

--Your code inside class
}

我希望这将对您有所帮助

是的,这正是其中的内容。RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-已重写COND%{REQUEST_FILENAME}-f RewriteRule^(.*)$index.php?/$1[QSA,L]@amg55nj答案已更正。这不是重写错误,这是因为您不尊重CakePHP重写结构。感谢您的回复。当我转到它时,它会给我一个目录中文件的列表。我不知道为什么,正如您所说,我启用了重写。@amg55nj转到查看带有Cake调试检查的默认主页。它可能对您有更多的指导。@amg55nj将“DirectoryIndex.php”添加到根目录中的.htaccess文件中。是的,那正是那里的东西。RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-已重写COND%{REQUEST_FILENAME}-f RewriteRule^(.*)$index.php?/$1[QSA,L]@amg55nj答案已更正。这不是重写错误,这是因为您不尊重CakePHP重写结构。感谢您的回复。当我转到它时,它会给我一个目录中文件的列表。我不知道为什么,正如您所说,我启用了重写。@amg55nj转到查看带有Cake调试检查的默认主页。它可能对您有更多的指导。@amg55nj将“DirectoryIndex.php”添加到根目录中的.htaccess文件中。这是一个不错的建议,但当他浏览vhost并试图查看“index.php”时,仍然会出现错误:)为什么要手动浏览到index.php?您实际使用的url是什么?它在堆栈跟踪中。我第一次也错过了。他启用了重写,然后尝试导航到索引。phpmod_无法或不应动态启用重写。它不是开就是关(希望是第一个)。但是你仍然没有在浏览器中发布实际的url。我猜你没有真正阅读我的教程。否则您会发现,您没有在最后一个斜杠后添加任何内容:
http://domain/
(尤其是no index.php之类的东西)这是个不错的建议,但当他浏览vhost并试图查看“index.php”时,仍然会出错:)为什么要手动浏览到index.php?您实际使用的url是什么?它在堆栈跟踪中。我第一次也错过了。他启用了重写,然后尝试导航到索引。phpmod_无法或不应动态启用重写。它不是开就是关(希望是第一个)。但是你仍然没有在浏览器中发布实际的url。我猜你没有真正阅读我的教程。否则您会发现,您没有在最后一个斜杠后添加任何内容:
http://domain/
(尤其是没有index.php之类的东西)