• zend framework 关于mod_rewrite 的需要

    日期:2008-11-10 | 分类:班门弄斧

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://xiedean.blogbus.com/logs/31197366.html

    偶然间访问网站时把地址写成  path/to/site/index.php ,发现网站还是可以运行的。只是view helper : baseUrl() (就是 Getting Started with Zend Framework 里面介绍的helper) 也会在后面加上 index.php,如果图片或者文件的链接都是用了baseUrl helper 的话,就会出错。简单的方法就是改一下baseUrl helper 就可以了。

    为什么要说前面的东西呢? 主要是发现了 zf 还是可以通过 index.php(文件名) 来访问 index.php 的。zf 的原理是把所有文件的访问都引向 index.php(通过.htaccess),然后再由 zend_controller_action 来 router。使用.htaccess 必须打开服务器的 mod_rewrite 模块,如果管理员可以给你打开这个模块,那就太好了。但是一般租用的服务器,管理员从安全和高效来考虑,是不打开的。zf 就不可以使用了吗?很多人都说可以,我也是看了一些文章,在这里总结一下自己的看法:

    其实很简单,就是在访问的时候直接加上 index.php 就可以了。
    例如 正常情况下的URL : path/to/site/controller/action
    我们只要改成 : path/to/site/index.php/controller/action     (还要把 .htaccess删除)

    如果你用了baseUrl helper 来做图片和链接的地址,那就要改写图片的链接了……

    很多人会考虑是否要把 “用户友好” 的URL 改写回  Query 的URL,其实不用,因为这部分功能是由zend_controller_action 来实现的,而 mod_rewrite 模块的打开是配合使用.htaccess 对目录访问的限制和引而已吧。


    历史上的今天:


    随机文章:

    paypal 整合 2008-12-13
    倒桩 2008-08-07
    偶们 复活! 2007-12-19

    收藏到:Del.icio.us