子文件夹运行Zend框架 - 默认控制器问题
我开始一个Zend的应用程序,我需要把它放在一个子文件夹是这样的:子文件夹运行Zend框架 - 默认控制器问题
- /子目录
- 应用
- 公众 ...
我做了以下内容:
- 我设置在的application.ini基URL:
resources.frontController.baseUrl = "/subfolder"
- 我移动从公用文件夹htaccess的直接插入/子文件夹,同时改变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]
这就是我所做的一切。一切都按预期工作。我可以添加控制器博客用行动视图,并可以通过调用访问:
/子/博客/视图
链接视图助手之类的东西工作的权利了。唯一不起作用的是默认控制器。所以,当我进入:
/subolder/
我得到403(禁止)。如果我进入
/子文件夹/索引
...它的工作原理。我错过了什么?!
在此先感谢! teebee
你并不需要在您的ZF公用文件夹的任何变化,只是创建一个.htaccess文件到“/子文件夹”目录与下面的行
# Rewrite rules
RewriteEngine on
RewriteRule (.*) ./public/$1
你是否分享上面提到的安全问题?我没有看到任何问题,因为一切都重定向到public/index.php? – teebee
@teebee将来取决于您的应用程序。您可能需要进行更改,然后它会困扰您。大多数标准和最佳实践不是为了惹恼人们,而是因为其他人了解了问题。大部分时间都是艰难的方式。 –
替换 RewriteRule ^。 $ public/index.php [NC,L] 与 RewriteRule ^。 $ http://addressto/index.php [R = 302,NC] 或 重写规则^ * $ /public/index.php [NC,L]
我不知道如果把ZF文件夹比其他公众公开将访问的文件夹是它会强加你的网站的安全漏洞。您必须将ZF的公用文件夹的内容放入您的服务器的公用文件夹中,并将其他文件夹放入不可公开访问的文件夹中。如果您需要更多ZF应用程序的一个实例,则可以使用Zend模块system.Please请参阅zend online文档更多细节。
你为什么会远离移动你的.htaccess公用文件夹?我想,这会导致各种问题。 –
那我该怎么使用子文件夹呢?有更好的方法吗? – teebee
您不必混淆(和混合)您的Web文件夹结构和您的区域设置文件结构。您的Zend应用程序可以在您的Web服务器上居住的任何地方居住。虽然你的index.php必须找到它。你的public(web)文件夹只能保存index.php加上需要通过web浏览器访问的内容,比如CSS,images。根据你的htaccess /子文件夹存在,因此index.php不会触发,但也是403错误。 –