如何从Zend Framework中的http:// localhost / myscript / public /中删除“public /”

时间:2010-09-23 07:29:40

标签: php zend-framework url

默认情况下,我可以使用此网址http://localhost/myscript/public/访问我的脚本。 但我需要通过此网址http://localhost/myscript/访问它。 我怎么能在Zend Framework中做到这一点。

3 个答案:

答案 0 :(得分:1)

“public”文件夹是Zend Framework的一个重要关键功能,因为它将Apache限制为仅读取该目录中的文件,如果使用得当,将使所有其他代码保持在公共可见性之外。如果你确实把你的整个应用程序放了,你必须做/public/index.php才能到达你想去的地方,你应该知道这一点。

通常,在共享主机配置中,您将拥有站点的公用文件夹,并将公用文件夹与应用程序的其余部分分开。比如说你的目录中有一个“public_html”文件夹,那就是你域名的可见文件夹。然后,遵循该逻辑,而不是将您想要的所有内容放入主目录,而是将应用程序“安装”到名为“zend_app”的自定义子目录中。您可以将文件从“public”复制到“public_html”文件夹中,将其余文件复制到“zend_app”文件夹中,然后自定义index.php文件,例如:

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../zend_app/application'));

大多数其他zend配置都是从该定义派生的,因此从中构建它是相当安全的。如果在配置应用程序时牢记这一点,则可以帮助维护此可移植性。理论上,使用它,您应该能够构建一个适合您需求的配置。

答案 1 :(得分:1)

只需使用您的网络服务器创建一个虚拟主机,并将其配置为使用文件夹“public”作为文档根,您将会很好并且安全。

答案 2 :(得分:-1)

只需将公用文件夹中的所有文件放入根文件夹即可。

然后打开index.php或bootstrap.php,无论你有这个代码

set_include_path(‘.’
        . PATH_SEPARATOR . get_include_path()
        . PATH_SEPARATOR . ‘../library’
        . PATH_SEPARATOR . ‘../application/classes/’
        . PATH_SEPARATOR . ‘../application/models/’

并将其更改为此

set_include_path(‘.’
        . PATH_SEPARATOR . get_include_path()
        . PATH_SEPARATOR . ‘library’
        . PATH_SEPARATOR . ‘application/classes/’
        . PATH_SEPARATOR . ‘application/models/’

但也要检查其他方式,比如这个。

require_once'Zend / Controller / Front.php';

从这个页面得到这个教程:) http://www.fincha.com/blog/2010/tutorial-zf-public-verzeichnis-umgehen-nicht-verwenden/

用德语...