我有一个用Zend Framework编写的小应用程序,我希望将其嵌入到Drupal Page中。 这两个应用程序(ZF和Drupal)都位于同一个域中。
但根据我的知识,ZF需要安装在服务器的根目录中,我已经有了Drupal。我担心的是,ZF控制器会将Drupal页面请求误认为是糟糕的控制器请求。
可以有一个简单的解决方案来防止这种冲突吗? 可能更容易为限制较少的框架重写应用程序,但我需要检查我已经权衡了所有选项。
提前感谢,因为StackOverflow已被证明是一个非常有用的资源,我计划分配一些时间来帮助我的专业领域的人
答案 0 :(得分:3)
请注意,已存在Zend Framework integration module for Drupal。使用它通常会处理路径问题。
答案 1 :(得分:1)
我已经将特定的URL运行到基于ZF的系统,并允许其余的URL回退到index.php。这是自定义代码,而不是Drupal安装,但我看不出它会有什么不同。
以下是我使用.htaccess文件的方式:
### Zend Framework for main site, the rest fallback to /index.php
RewriteEngine on
RewriteBase /
# Not if there is a file or directory that matches
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^register /?mod=register& [QSA,L]
# ... and other rewrite aliases to index.php
# Alternates that redirect
RewriteRule ^friend/(.*) /friends/$1 [R=301,L]
RewriteRule ^members$ /member/ [R=301,L]
# These URLs are handled by ZF
RewriteRule ^member(.*)$ /zf.php [L]
RewriteRule ^friends /zf.php [L]
RewriteRule ^about/ /zf.php [L]
RewriteRule ^faq /zf.php [L]
正如您应该看到的,Zend Framework引导程序位于/zf.php中,而不是通常的/index.php
答案 2 :(得分:0)
Drupal很乐意生活在一个目录中,它并不坚持成为root用户。我根本不太了解Zend。
如果你想将它们安装到网络服务器的根目录,我想你将不得不做一些自定义编码。我可能会在Drupal的index.php中查看并添加一些将404发送给Zend而不是让Drupal处理它们的代码。实际上,可能有一种方法可以在Apache级别使用某种mod_rewrite或mod_proxy魔法。
答案 3 :(得分:-5)
这可能对您没有特别的帮助。但有什么特别需要你的Zend。 Drupal本身就是一个非常好的框架。我猜想试图让两个并肩工作会比它的价值更大,因为它非常不标准。