2012-10-16 33 views
1

我有一個CakePHP 2安裝,但具有某些URL免除默認路由。我通過向.htaccess文件添加異常來完成此操作。例如,撥打電話http://www.mydomain.com/bloghttp://www.mydomain.com/proofgallery都會重定向到cakephp之外的文件夾。.htaccess文件中的CakePHP路由異常仍然導致丟失控制器錯誤

的的.htaccess代碼如下所示:

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

但是,我的東西導致這些豁免缺少控制器錯誤error.log中發現。

E.g.

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幫助程序,這可能會解釋缺少的控制器錯誤。

回答

2

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

根據這個例子,如果你想添加http://www.mydomain.com/blog你必須去CakePHP的以下路徑「app/webroot」並添加文件夾「blog」。例如,如果你想在你的CakePHP應用程序中使用wordpress。

驗證您對應用程序/ Web根目錄/的.htaccess

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

默認.htacces並刪除在的.htaccess所做的更改。

我如果您有更多的懷疑讓我知道

+0

好了,WordPress的安裝已進入應用程序/ Web根目錄/博客 ,而不是「水貨」到/ app文件夾和/應用程序默認的.htaccess/webroot確保不重寫這些路線? 有道理。讓我試試這個......謝謝! – Aji

+0

是的。例如我的一個項目,我在app/webroot中集成了wordpress和OpenX,以便將這些應用程序與CakePHP一起使用。我只是使用CakePHP調用myproyect.com/wordpress和myrproyect.com/openx,沒有任何特殊路由。 如果我幫你記得投票並將其標記爲已解決! :) 如果你有更多的疑惑,讓我知道 – elpeter

+0

謝謝,這說明了... – Aji