今天开始学习zend framework,按照网上大牛的文章,将zend framework安装好后,
试着应用的时候,却发现了这样的问题:
输入地址:http://127.0.0.1/zf可以执行(zf为zend framework的工作目录,application,library等文件夹都在该目录下)。
但输入http://127.0.0.1/zf/index,http://127.0.0.1/zf/index/index,均不能执行,不知道是上面原因??高手帮忙。
还有资料说:http://127.0.0.1/zf/test/view这样的地址,test是控制器,view是action,那么若输入这个地址,则zend framework将会从application\controllers下找文件TestController.php(不清楚这个文件名是不是一定要这样)中的类TestController,然后执行该类下的方法:testAction()。
那zend framework为什么会将test当作控制器,view当做action呢?假如我的目的是想执行/test/view下的index.php,那不是不能执行这个index.php了吗? 太乱了,高手指点一下,多谢。
------解决方案--------------------
不考虑url重写等因素。
http://127.0.0.1/zf 默认情况相当于 http://127.0.0.1/zf/index.php吧
http://127.0.0.1/zf/index相当于http://127.0.0.1/zf/index/index.php
当然默认首页可以随意指定,我是说一般情况
------解决方案--------------------
你google 查查 urlrewrite url重写技术
估计就是你要找的东西吧
------解决方案--------------------
RewriteRule .* index.php
.htaccess文件在哪里?
这个规则会将.htaccess包含该目录的所有连接,都映射指index.php
比如
web根目录/info/……
.htaccess在info目录
那么http://localhost/info/DDDD/i/n/d/e/x……
http://localhost/info/123123123
都映射至http://localhost/info/index.php
------解决方案--------------------
先把别的规则屏蔽了
RewriteRule ^index\.html$ index\.php [L]
确认,zf目录下有index.php
访问
http://127.0.0.1/zf/index.html =》结果是index.php的内容
如果这都不生效,说明rewrite引擎没启动
------解决方案--------------------
你的重写规则要考虑同一目录下的所有文件名的规律
------解决方案--------------------
注意:httpd.conf里有3个AllowOverride None改为AllowOverride All,你可能只改了1个