大家知道,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程序集成起来
阅读(1399) | 评论(0) | 转发(0) |