我正在使用zend framework 1.12.3。
index.php:
switch(strtolower($_SERVER['REQUEST_URI'])) {
case '/admin/':
define('APPLICATION_PATH',
realpath(dirname(__FILE__) . '/../application/admin'));
break;
case '/store/':
define('APPLICATION_PATH',
realpath(dirname(__FILE__) . '/../application/stoe'));
break;
default:
define('APPLICATION_PATH',
realpath(dirname(__FILE__) . '/../application/store'));
break;
}
管理员控制器:
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
$request = $this->getRequest();
$this->view->assign('title', 'Login Form');
$this->view->assign('username', 'User Name');
$this->view->assign('password', 'Password');
}
public function authAction()
{
echo 'test';exit;
}
当我访问网址时: http://pro.localhost/admin/ - 这是有效的
但是当我访问网址时: http://pro.localhost/admin/auth 显示错误'找不到页面'和'消息:指定的控制器无效(管理员)'
答案 0 :(得分:1)
$_SERVER['REQUEST_URI']
等于 到'/ admin /',所以APPLICATION_PATH被定义为而是存储路径。您应该使用'/ admin /'检查$_SERVER['REQUEST_URI']
是否开始 。你不应该需要一个switch语句来检查两个条件。
if (strpos(strtolower($_SERVER['REQUEST_URI']), '/admin/') === 0) {
define(
'APPLICATION_PATH',
realpath(dirname(__FILE__) . '/../application/admin')
);
} else {
define(
'APPLICATION_PATH',
realpath(dirname(__FILE__) . '/../application/store')
);
}