.htaccess文件中的CakePHP路由异常仍然导致缺少控制器错误



我有一个CakePHP 2安装,但某些URL免于默认路由。我通过将异常添加到 .htaccess 文件来做到这一点。因此,例如调用 http://www.mydomain.com/blog 或 http://www.mydomain.com/proofgallery 都重定向到cakephp之外的文件夹。

.htaccess代码如下所示:

# Overrides to the cake routing    
<IfModule mod_rewrite.c>
  RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?  (blog|proofgallery)/(.*)$
  RewriteRule ^.*$ - [L]
</IfModule>

但是,我在错误中注意到.log某些内容导致这些豁免缺少控制器错误。

例如

2012-10-16 14:49:15 Error: [MissingControllerException] Controller class ProofgalleryController could not be found.
#0 /home/mydomain/public_html/app/webroot/index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#1 {main}
2012-10-16 11:13:24 Error: [MissingControllerException] Controller class BlogController could not be found.
#0 /home/mydomain/public_html/app/webroot/index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))

#1 {主要}

为什么?以及如何避免它?据我所知,应用程序内的所有链接都使用完整的URL(http://www.mbvphotography.com/blog),而不是Cake HTML帮助程序,这可能解释了缺少控制器的错误。

我想你想添加其他代码,但你仍然想使用Cakephp。

根据这个你的例子,如果你想添加 http://www.mydomain.com/blog 你必须转到CakePHP的以下路径"app/webroot"并添加文件夹"blog"。例如,如果你想在你的CakePHP应用程序中使用wordpress。

验证您在 app/webroot/.htaccess 上是否具有默认的 .htacces

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

并删除您在 .htaccess 上所做的更改。

我 如果您还有其他疑问,请告诉我

最新更新