我正在构建基于Zend Framework的网站/应用程序。对于大量页面,我想使用Drupal。 Drupal可能安装在/ cms文件夹中。
Zend Framework入口点是
/public/index.php
而Drupal是
/public/cms/index.php
如何使用一些 .htaccess mod_rewrite 规则来删除Drupal的URL的“/ cms /”部分,也就是说,我想要链接到页面
www.example.com/blog/a-blog-post
而不是
www.example.com/cms/blog/a-blog-post
另外,我希望Zend Framework的自定义路由能够正常工作。
子问题:谁将提供404未找到的页面,Zend Framework应用程序或Drupal?
答案 0 :(得分:0)
不确定Drupal如何处理它的根主机名,但是使用Zend Framework中的默认mod_rewrite规则,作为文件夹存在的公共路径中的任何内容都将覆盖ZF路由。
所以我猜你是否在public/blog
中安装了Drupal,你可以找到www.example.com/blog/a-post-name
并且它会击中Drupal。至少这就是我在将Wordpress与ZF结合使用时所做的事情。
将根据遇到错误时正在运行的应用程序呈现错误页面。
答案 1 :(得分: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将被两者抛弃。在/ blog中找不到的任何东西都是drupal,其他任何未找到的东西都是ZF。