当前位置: 代码迷 >> PHP >> :zend framework在地址:http://127.0.0.1/zf/index,不能成功
  详细解决方案

:zend framework在地址:http://127.0.0.1/zf/index,不能成功

热度:932   发布时间:2012-02-17 17:50:42.0
求救:zend framework在地址:http://127.0.0.1/zf/index,不能成功?
今天开始学习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个
  相关解决方案