【问题标题】:Getting a 404 when trying to access my Zend module尝试访问我的 Zend 模块时出现 404
【发布时间】:2013-07-15 06:16:32
【问题描述】:

我正在尝试学习 Zend Framework 1.12 模块目录结构,所以我手动创建了它。到目前为止,我通过将其添加到位于我的应用程序文件夹下的 Bootstrap.php 中,使模块可以使用默认值。

$this->bootstrap("frontController");  
$front = $this->getResource("frontController");          
$front->addModuleDirectory(APPLICATION_PATH . '/modules');  

我尝试使用 application.ini 通过以下设置执行此操作,但它一直给我一个异常提示“没有向前端控制器注册默认控制器目录”。

resources.frontController.defaultController = "index"
resources.frontController.defaultAction = "index"
resources.frontController.defaultModule = "default"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules[] = ""

这是我的目录结构:

root 
|
+- application
   |
   +- configs
   |  |
   |  +- application.ini
   |     
   +- modules
      |
      +- default
      |  |
      |  +- controllers
      |  |  |
      |  |  +- IndexController.php
      |  |
      |  +- views
      |     |
      |     +- scripts
      |        |
      |        +- index
      |           |
      |           +- index.phtml
      |  
      +- signup
         |      
         +- controllers
         |  |
         |  +- IndexController.php
         |
         +- views
            |
            +- scripts
               |
               +- index
                 |
                 +- index.phtml

这是我的重写规则:

RewriteEngine On
RewriteRule ^myroot/.*$ index.php [NC]

我尝试访问http://mysite.com/root/signup,但一直收到 404。我是否缺少在 Zend 中设置模块的内容?

更新: 如果我将默认设置为注册,它会起作用。

resources.frontController.defaultModule = "signup"

我现在最好的猜测是当我进入时 RewriteRule 没有将它重定向到 index.php

http://www.mysite.com/root/signup

【问题讨论】:

  • 是/root/主index.php脚本的位置吗?
  • 是的,那是我设置 Zend 的主要 index.php 所在的位置。
  • 只是为了傻笑尝试去mysite.com/root/signup/index/index
  • 我实际上也尝试过,但仍然得到 404。我将添加我的重写规则。

标签: php zend-framework frameworks module


【解决方案1】:

将此添加到您的application.ini

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = "default"
resources.modules[] = "signup"

【讨论】:

  • 如果我从 Bootstrap.php 中删除 addModuleDirectory() 调用并将这些行添加到我的 application.ini 中,它会给我“没有向前端控制器注册的默认控制器目录”异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多