1

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>

しかし、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 にデフォルトの .htaccess があることを確認します

<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 に答える