【问题标题】:Zend - module structure does not work properlyZend - 模块结构不能正常工作
【发布时间】:2011-04-11 10:31:22
【问题描述】:

我正在尝试使我的应用程序结构化但有一个问题...我的应用程序具有本地地址“myapp”和指向“C:/www/myapp/public”(Windows) 的链接。当我尝试访问http://myapp(基于虚拟主机的地址)时,我执行了默认模块(模块:默认,控制器:索引,操作:索引)。但是当我尝试打开 http://myapp/defaulthttp://myapp/faxes 时,我得到 404 浏览器页面(不是 Zend 异常)。我做错了什么?
这是我的项目结构:

这是我缩短的 application.ini:

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
phpSettings.upload_tmp_dir = APPLICATION_PATH "/../data/tmp"

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

appnamespace = "Application"

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.env = APPLICATION_ENV
resources.modules[] =
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
resources.layout.viewSuffix = "phtml"
resources.layout.layout = "index"
resources.view.titleSeparator = " - "
resources.view.doctype = "XHTML1_STRICT"
resources.view.contentType = "text/html; charset=utf-8"
resources.view.encoding = "utf-8"
resources.view.ViewSuffix = "phtml"
resources.session.save_path = APPLICATION_PATH "/../data/session"

pluginPaths.Duck_Application_Resource = LIBRARY_PATH "/Duck/Application/Resource"

autoloaderNamespaces[] = "Duck"

【问题讨论】:

  • 您的resources.frontController.controllerDirectory 设置似乎不正确。在“modules”目录之外运行默认模块通常是最简单的。

标签: zend-framework


【解决方案1】:

我将假设您使用 Apache 作为您的 Web 服务器。

问题可能出在您的 public/.htaccess 文件上。文件内容应类似于以下内容:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

如果这些规则已经存在于您的 htaccess 中,那么您可能需要检查您的 Web 服务器配置文件(例如 httpd.conf)是否包含以下内容:

AccessFileName .htaccess
AllowOverride all

上面的文档可以在Apache Core Features 页面上找到。如果您仍然遇到问题,请确保您已正确安装并配置了 mod_rewrite Apache 模块。

【讨论】:

  • 是的,我正在使用 Apache。我有几个虚拟主机,一切正常 - 为整个 c:/www 目录设置了“AllowOverride all” - 但是这个项目不能正常工作......“.htaccess”也是正确的......
  • 你说得对,真丢脸...我曾经为目录配置“Apache LDAP 基本身份验证”,并在那里设置了“AllowOverride none”。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多