Zend framework Zend Framework在url中不包含默认模块
我有一个ZF1.12项目,其结构如下:Zend framework Zend Framework在url中不包含默认模块,zend-framework,url,module,default,Zend Framework,Url,Module,Default,我有一个ZF1.12项目,其结构如下: |Project |-Application |-configs |-application.ini |-modules |-default |-configs |-controllers |-models |-views
|Project
|-Application
|-configs
|-application.ini
|-modules
|-default
|-configs
|-controllers
|-models
|-views
|-Bootstrap.php
|-api
|-configs
|-controllers
|-models
|-views
|-Bootstrap.php
|-Bootstrap.php
|-Library
|-Public
application.ini中的模块配置
resources.modulesetup[] =
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultAction = "index"
resources.frontController.defaultModule = "default"
resources.modules[] = ""
这些链接
$this->url(array('module'=>'default', 'controller'=>'index', 'action'=>'index'));
$this->url(array('module'=>'default', 'controller'=>'index', 'action'=>'one'));
$this->url(array('module'=>'admin', 'controller'=>'index', 'action'=>'index'));
$this->url(array('module'=>'admin', 'controller'=>'index', 'action'=>'two'));
网址:http://project.com/return
/project.com/ ---> works
/project.com/ ---> no module, no controller and no action...
/project.com/admin/ ---> works
/project.com/admin/ ---> no controller and no action...
和/project.com/default/return上的相同链接
/project.com/ ---> works
/project.com/index/one ---> doesn't work and return 404 error
/project.com/admin/index/index ---> works
/project.com/admin/index/two ---> works
有点不对劲,当然,我应该一直有同样的回报。
第二个也给了我一个404错误。。我设计了类似于/project.com/default/index/one的东西,如果我把它放在浏览器的地址栏中,它就会工作
为什么url()方法不返回包含“默认”模块的url?我有类似的设置,并使用自定义路由:
[routes]
routes.mycustomroute.type = "Zend_Controller_Router_Route_Regex"
routes.mycustomroute.route = "([a-zA-Z]+)/([a-zA-Z]+)"
routes.mycustomroute.defaults.module = "default"
routes.mycustomroute.map.1 = controller
routes.mycustomroute.map.2 = action
routes.mycustomroute.reverse = "%s/%s/%s"
有关使用路由的一些详细信息:
但基本上,在引导程序中添加函数\u initRoutes
(从上一个链接),并在/configs
下创建一个routes.ini文件
--
此外,您可能还需要查看
$front->setParam('usedefaultcontrolleraways',true)代码>(参见文档)。但是我不确定它是做什么的。example是你想调用的模块吗?/example是项目的名称(域名)。比如www.example.com/module/controller/action。。。。为什么它不返回域(示例)和控制器(索引)之间的模块?您能解释我应该如何自定义此设置吗?如果我把它放在application.ini的顶部,没有任何变化…在你的routes.ini中,你是否在最顶部添加了[routes]
?是的,我添加了。。。什么都没有。。。我被这个问题弄疯了:(与其链接默认路由,不如尝试创建一个新路由,这样上面的内容就会变成routes.mycustomroute.type