0

我正在尝试制作一个在共享主机上运行的简单 Zend Webapp。登录 FTP 服务器后的根文件夹是一个名为“www”的文件夹。所以结构是:

/www
   /tasklist
        /application
        /library
        /public
        /.htaccess

托管服务提供商要求 .htacccess 文件中的所有路径都是绝对路径。考虑到这一点,我的 Zend 应用程序的主 index.php 的路径是:

http://aportsupport.cz/tasklist/public/index.php

这也是我可以访问我的应用程序的链接,但某些文件(css、js 等)的其他路径不起作用。当我尝试通过以下方式访问我的应用程序时:

http://aportsupport.cz/tasklist/

根据我已经尝试过的 .htaccess 的各种设置,我只会收到 404 或 403 错误。我无权访问错误日志,也无权访问任何服务器配置。默认控制器是'index',动作'index',模块'default'。

4

2 回答 2

0

在 Zend 应用程序中,.htaccess 应该在您的公用文件夹中,因此您的文件夹树将如下所示:

/www
    /tasklist
        /application
        /library
        /public
            /.htaccess

对于大多数 Zend 应用程序,您的 .htaccess 可以保持简单。为 .htaccess 试用此文本:

Options +FollowSymlinks

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

这分解为无论从这个根目录请求什么 url,它都会尝试获取文件 /www/tasklist/public/index.php,这将引导 Zend 应用程序。

请记住,如果您的托管服务提供商不支持 Zend Framework,它可能根本无法运行。像http://www.phpcloud.com/这样的托管服务提供商确实允许基于 Zend 的应用程序,但您必须在创建容器时指定它。

于 2013-03-12T18:10:24.180 回答
0

感谢您的回复,但是,我终于设法自己完成了。对于所有可能有类似问题的人,此解决方案对我有用:

我创建了一个子域“tasklist.aportsupport.cz”,它在我的共享主机上有自己的根文件夹。在这个文件夹中,我将所有 Zend 文件夹及其默认结构放在一起。我还创建了 index.php 文件,我在其中写了这个:

<?php include 'public/index.php';

这个 index.php 位于 tasklist.aportsupport.cz 的根目录中,默认 Zend Framewrok .htaccess 我在其中添加了这一行:

RewriteBase /

此外,所有 CSS、JS、imgs 等文件都位于该根文件夹中。一切正常!

于 2013-03-15T22:21:09.127 回答