ZF开发的PHP应用与传统PHP应用集成的方法 大家知道,ZF需要将所有HTTP请求全部交由index.php(bootstrap)来处理,所以我们需要配置服务器的URL重写规则,例如Apache的httpd.conf:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^.*(/.css|/.js|/.html|/.zf|/.gif|/.pdf|/.rar|/.ppt|/.chm|/.png|/.jpg|/.jpeg)$
RewriteRule ^(/.*)$ /index.php
我们把对除了特定扩展名外的所有文件的请求都转向到index.php。 但是这样就出现了一个问题:如果我想将一个已有的PHP程序放到网站中,怎么办?
对程序的请求也都转向到index.php,显然程序无法正常工作了。 通过修改URL重写规则,我们可以解决这个问题。 例如安装discuz!论坛,我们把它装在/bbs目录下,那么我们可以这样改写rewrite规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^.*(/.css|/.js|/.html|/.zf|/.gif|/.pdf|/.rar|/.ppt|/.chm|/.png|/.jpg|/.jpeg)$|.*(bbs).*
RewriteRule ^(/.*)$ /index.php
注意,我们在最后加上了一个|.*(bbs).*,也就是说如果请求中有出现bbs字样就不转向到index.php,这样我们就可以访问 bbs目录下的所有文件而不会转向到/index.php了。 使用这个办法,可以方便地将ZF开发的程序和传统的PHP程序集成起来。