Zend framework Zend_控制器_路由器_路由_主机名及附加变量

Zend framework Zend_控制器_路由器_路由_主机名及附加变量,zend-framework,zend-controller-router,Zend Framework,Zend Controller Router,我在最后使用另一个变量链接某些路由时遇到问题。我正在使用通配符子域。 这样地: mypage1将成为一个GET变量。所以我想要的是 如果没有像这样的页面名,我可以让它正常工作: $router=$fc->getRouter(); // Host routes $accountHostRoute = new Zend_Controller_Router_Route_Hostname(':urlname.mysite.dev', array('module' => 'donate', '

我在最后使用另一个变量链接某些路由时遇到问题。我正在使用通配符子域。 这样地: mypage1将成为一个GET变量。所以我想要的是

如果没有像这样的页面名,我可以让它正常工作:

$router=$fc->getRouter();
// Host routes
$accountHostRoute = new Zend_Controller_Router_Route_Hostname(':urlname.mysite.dev', array('module' => 'donate', 'controller' => 'now', 'action' => 'index'), array('urlname'=>'(?!www$).*')
        );

        // Account routes
        $router->addRoute('donateWithHostNameLocal', $accountHostRoute->chain(
            new Zend_Controller_Router_Route_Hostname(
                ':urlname.mysite.dev',
                array(
                    'module' => 'donate',
                    'controller' => 'now',
                    'action' => 'index'
                )
            )
        ));
但我还需要页面名称,所以我尝试了这个,但它不起作用:

    // Account dynamic pages routes
    $router->addRoute('donateWithHostNamePageNameLocal', $accountHostRoute->chain(
        new Zend_Controller_Router_Route_Hostname(
            ':urlname.mysite.dev/:pagename',
            array(
                'module' => 'donate',
                'controller' => 'now',
                'action' => 'index'
            )
        )
    ));
我收到一个应用程序错误:找不到消息:资源“默认值:mypage1”

堆栈跟踪: 0/Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Acl.php(751):Zend_Acl->get('default:mypage1') 1/Applications/MAMP/htdocs/mysite/application/modules/default/plugins/AccessCheck.php(15):Zend_Acl->isAllowed('guest','default:mypage1','index') 2/Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Controller/Plugin/Broker.php(309):Plugin\u AccessCheck->preDispatch(对象(Zend\u Controller\u Request\u Http)) 3/Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Controller/Front.php(933):Zend_Controller_Plugin_Broker->preDispatch(对象(Zend_Controller_Request_Http)) 4/Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Application/Bootstrap/Bootstrap.php(77):Zend_Controller_Front->dispatch() 5/Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Application.php(358):Zend_Application_Bootstrap_Bootstrap->run() 6/Applications/MAMP/htdocs/mysite/public/index.php(34):Zend_应用程序->运行() 7{main}

请求参数: 排列( “控制器”=>“mypage1”, “操作”=>“索引”, “模块”=>“默认值”,
)

我怀疑您的ACL没有定义此资源,您使用自定义逻辑生成资源

如果您在这里编写它抛出的异常(Zend_Acl_exception,Zend_Application_exception,…)字符限制,这会有所帮助,因此我在问题中添加了堆栈跟踪。在我的ACL模型中,我确实有“捐赠/现在/索引”的来宾权限。谢谢。很明显,您的路线不匹配。您可以尝试将/*添加到末尾,以匹配其他参数。