2010-11-24 4 views
0

私はZend Frameworkに基づいてWebサイト/アプリケーションを構築しています。多数のページで、Drupalを使いたいです。 Drupalはおそらく/ cmsフォルダにインストールされています。Zend Framework(Drupal(または他のCMS)をサブフォルダに含む)

Zend Frameworkのエントリポイントが

/public/index.php

で、Drupalのため

/public/cms/index.php

です

どうすればいいですか?.htacc DrupalのためのURLは "/ CMS /" の部分を削除するには、ESSのmod_rewriteルール、つまり、私はページへのリンクが

www.example.com/blog/a-blog-post

になりたいです代わりに

www.example.com/cms/blog/a-blog-post

はまた、私は、Zend Frameworkのからの私のカスタムルートが正常に動作します。

サブクエリ:404の見つからないページ、Zend Frameworkアプリケーション、またはDrupalは誰に配信されますか?

答えて

0

Drupalがルートホスト名を処理する方法はわかりませんが、Zend Frameworkのデフォルトのmod_rewriteルールを使用すると、フォルダとして存在するパブリックパスのすべてがZFルートを上書きします。

public/blogにDrupalをインストールすると、www.example.com/blog/a-post-nameにパスできて、Drupalにぶつかると思います。少なくともそれはZFと一緒にWordpressを使用するときに私がすることです。

エラーが発生したときに実行されているアプリケーションによって、エラーページが表示されます。

0

あなたのdrupalのURLがすべて '/ blog'である限り、zendフレームワークがルールを書き換える前に解釈される限り、その1つの書き換えルールで十分です。

私はちょうど私の頭の上からこれを引いていたので、私はそれが動作願っています:

RewriteEngine On 
RewriteBase /blog 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /cms/index.php [L] 

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

重要[L]を、それは最後のルールだApacheとさらに行くべきではありません伝えます。このになるはずですが、マッサージが必要かもしれません。;)

あなたのサブクラスに答えるために、404は両方で投げられます。/blogに見つからないものはdrupalになり、見つからないものはZFになります。

+0

Drupalが使用されているパスが1つしかない場合は、いい解決法です。/blog/a-blog-post、/ faq/some-faqs、/ tutorials/a-tutorialなどのDrupal管理パス/カテゴリがいくつかある場合はどうでしょうか... Drupalのカテゴリ数は無限になるはずですZend Frameworkルートとコントローラの数はほんの数に制限されます。 – ppavlovic

+0

drupalに無制限のパワーを与え、ZFを有限に設定する場合は、まずZFの書き換えルールを書いた後、すべてをdrupalに落とすほうが良いでしょう。優先順位の順に書き換えルールを設定するだけです。 –

関連する問題