【发布时间】:2011-07-04 19:59:51
【问题描述】:
我正在启动一个 Zend 应用程序,我需要将它放在这样的子文件夹中:
- /子文件夹
- 应用
- 公开 ...
我做了以下事情:
- 我在application.ini中设置了base url:
resources.frontController.baseUrl = "/subfolder"
- 我将 .htaccess 从公用文件夹直接移动到 /subfolder,同时将 htaccess 更改如下:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ public/index.php [NC,L]
这就是我所做的一切。一切都按预期工作。我可以添加带有动作视图的控制器博客,并可以通过调用来访问它:
/子文件夹/博客/视图
url 视图助手和其他东西也可以正常工作。唯一不起作用的是默认控制器。所以当我进入时:
/subolder/
我得到 403(禁止)。如果我输入
/子文件夹/索引
...它有效。我错过了什么?!
提前致谢! 小蜜蜂
【问题讨论】:
-
为什么要将 .htaccess 从公用文件夹中移开?我认为这会导致各种问题。
-
那我还能如何使用子文件夹呢?有更好的方法吗?
-
您不必混淆(和混合)您的 Web 文件夹结构和区域设置文件结构。您的 Zend 应用程序可以存在于您希望它存在于 Web 服务器上的任何位置。不过,您的 index.php 必须找到它。您的公共(网络)文件夹应该只包含该 index.php 以及需要通过网络浏览器访问的内容,例如 CSS、图像。根据您的 htaccess /subfolder 存在,因此 index.php 不会被触发,但也会出现 403 错误。
标签: zend-framework subdirectory