首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

Zend Framework 不能调用controller的action~~

刚装的Zend Framework1.0按照手册来学习~~

我的问题是在默认的情况下 htt://127.0.0.1/test  会出现New Album

但是一旦把控制器的名字和action的名字打上去htt://127.0.0.1/test/index/index 或者是htt://127.0.0.1/test/index/add  就说找不到该页~~


找了资料以后发现,输入htt://127.0.0.1/test/index.php/index/index   htt://127.0.0.1/test/index.php/index/Add  就行~


刚才找了资料,发现是apache2的 rewrite没有设置好,但是不知道该怎么设置?  谁能教下?

[ 本帖最后由 lbimba 于 2007-8-27 16:52 编辑 ]
昵称: lbimba  时间: 2007-08-27 16:00:00
用wamp吧,呵呵
昵称: xing  时间: 2007-08-27 18:01:00
启用 Apache Mod_rewrite 模块的方法:
在Apache的httpd.conf文件里
1. 去掉下面这一行的注释
    LoadModule rewrite_module modules/mod_rewrite.so
2. 在Options Indexes FollowSymLinks下面的一行AllowOverride None 改为 AllowOverride All
重启服务器。

在文档根目录下建立.htaccess文件(注意文件名以点开始,Windows下需要用命令行创建),文件里添加如下内容:
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
昵称: yongxinq  时间: 2007-08-27 20:48:00
呵呵,配置了好了以后apache2   默认的状态下http://127.0.0.1/test(以前能出来默认的页面的)现在是报错

输入全部http://127.0.0.1/test/index.php/index/index  能够正常显示~


Bad Request
Your browser sent a request that this server could not understand.



--------------------------------------------------------------------------------

Apache/2.0.59 (Win32) PHP/5.2.1 Server at 127.0.0.1 Port 80




贴出我的代码,大家看看~
复制PHP内容到剪贴板
PHP代码:

<?php

error_reporting
(E_ALL|E_STRICT); 
 
date_default_timezone_set('Asia/Shanghai'); 
set_include_path('.' PATH_SEPARATOR '../library' 
        
PATH_SEPARATOR './application/models/' 
       
PATH_SEPARATOR get_include_path()); 
   include 
"Zend/Loader.php"

   
Zend_Loader::loadClass('Zend_Controller_Front'); 

   
// setup controller 
   
$frontController Zend_Controller_Front::getInstance(); 
   
$frontController->throwExceptions(true); 
   
$frontController->setControllerDirectory('./application/controllers'); 

   
// run! 
   
$frontController->dispatch();

[ 本帖最后由 lbimba 于 2007-8-28 08:39 编辑 ]
昵称: lbimba  时间: 2007-08-28 08:31:00
首先 需要正确设置 Apache的Rewrite模块
试试:
$frontController->setBaseUrl('/test');
昵称: lyw0301  时间: 2007-08-28 10:06:00
如果Apache报404错误,多数是rewrite配置问题
如果是其它错误,可能是Router_Rewrite配置,或是Controller、Action等问题。

试试看在dispatch()前加入如下两行:
$router = $frontController->getRouter();
$router->addRoute('test', new Zend_Controller_Router_Route(':action', array('module'=>'default', 'controller'=>'index', 'action'=>'index')));
昵称: yongxinq  时间: 2007-08-28 10:23:00
设置一下baseUrl
昵称: weiye  时间: 2007-08-28 11:33:00