2010-11-24 94 views
0

我正在构建基于Zend Framework的网站/应用程序。对于大量的页面我想使用Drupal。 Drupal大概安装在/ cms文件夹中。在子文件夹中使用Drupal(或任何其他CMS)的Zend Framework站点)

Zend框架的切入点是

/public/index.php

而对于Drupal是

/public/cms/index.php

如何处理一些.htacc ESS mod_rewrite的规则消除 “/ CMS /” 一部分网址为Drupal,那就是,我想链接到页面是

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

代替

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

另外,我想从Zend框架我的自定义路由才能正常工作。

子问题:谁将服务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网址都是'/ blog',那么只要在zend框架重写规则之前对其进行解释就可以满足要求。

我只是从我的头顶拉这个,所以我希望它的工作原理:

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将被抛出两者。在/博客中找不到的任何东西都是drupal,其他任何未找到的东西都是ZF。

+0

好的,这是很好的解决方案,当只有一个路径使用Drupal。如果有几个Drupal托管路径/类别,如/ blog/a-blog-post,/ faq/some-faqs,/ tutorials/a-tutorial等等,那么Drupal中的类别数量应该是无限的,但是Zend框架路由和控制器的数量将仅限于少数几个。 – ppavlovic 2010-11-24 23:13:25

相关问题