1

我安装了 CakePHP 2,但某些 URL 不受默认路由的约束。我通过将异常添加到 .htaccess 文件来做到这一点。因此,例如调用http://www.mydomain.com/bloghttp://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>

但是,我在 error.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 帮助程序,这可能解释了缺少控制器错误。

4

1 回答 1

2

我想您想添加其他代码但仍想使用 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 所做的更改。

如果您有更多疑问,请告诉我

于 2012-10-18T07:30:36.283 回答