在子文件夹中运行Zend Framework - 默认控制器出现问题

时间:2011-07-04 19:59:51

标签: zend-framework subdirectory

我正在启动Zend应用程序,我需要将它放在这样的子文件夹中:

  • /子文件夹
    • 应用
    • 公共 ...

我做了以下事情:

  1. 我在application.ini中设置了基本网址:
  2. resources.frontController.baseUrl = "/subfolder"
    
    1. 我将.htaccess从公共文件夹直接移动到/子文件夹,同时按如下方式更改htaccess:
    2. 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(被禁止)。如果我输入

        

      /子文件夹/索引

      ......它有效。我错过了什么?!

      提前致谢! 蒂比

2 个答案:

答案 0 :(得分:0)

替换          RewriteRule ^。 $ public / index.php [NC,L] 同          RewriteRule ^。 $ http://addressto/index.php [R = 302,NC] 要么 RewriteRule ^。* $ /public/index.php [NC,L]

我不确定将公共文件以外的ZF文件夹放入可公开访问的文件夹是否正确。它会将您的网站强加于安全漏洞。您必须将ZF'公用文件夹'内容放入服务器的公用文件夹,并将其他文件夹放入不可公开访问的文件夹中。如果您需要更多的ZF应用程序实例,可以使用Zend模块系统。请参阅zend online文档了解更多详情。

答案 1 :(得分:0)

您不需要在zf公用文件夹中进行任何更改,只需使用以下行将.htaccess文件创建到“/ subfolder”目录中

# Rewrite rules
RewriteEngine on
RewriteRule (.*) ./public/$1