在托管上安装Zend项目,只能访问公共目录

时间:2011-12-07 10:45:35

标签: php zend-framework ftp dns hosting

我在Ubuntu上开发了一个关于Zend Framework的项目。我在本地计算机上创建了一个虚拟主机进行测试。它在我的本地机器上完美运行。这是本地计算机上虚拟主机的条目。

<VirtualHost *:80>
    ServerName example.dev
    DocumentRoot /var/www/example/public/
    <Directory /var/www/example/public/>
        AllowOverride All
    </Directory>
</VirtualHost>

问题:

我的问题是,当我购买域名(example.com)名称和托管时,他们给了我以下ftp目录来上传我的内容。

example.com指向/www.example.com/web/content

但我需要example.com指向/www.example.com/web/content/public

我让他们解决了,但他们说这是不可能的。是否有任何编程/配置解决方案。

谢谢

编辑:

我已在/www.example.com/web/content/public

中关注 .htaccess
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

3 个答案:

答案 0 :(得分:3)

根据他们使用的Web服务器以及他们所拥有的配置,您可以覆盖某些配置,例如,您可以使用apache重写规则更改文档根目录,并将.htaccess文件更改为放在/www.example.com/web/content

的根目录下
RewriteEngine On

RewriteRule ^\.htaccess$ - [F]

RewriteRule ^$ /public/index.php [L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteRule ^public/.*$ /public/index.php [NC,L]

答案 1 :(得分:1)

将index.php文件放入公用文件夹 并将.htaccess放在根文件夹中,女巫内容

RewriteEngine On

RewriteRule ^\.htaccess$ - [F]

RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteRule ^public/.*$ /public/index.php [NC,L]

Options -Indexes

答案 2 :(得分:1)

它很简单,只需将公共目录内容移动到父级,所以/www.example.com/web/content/public中的所有文件 成为 /www.example.com/web/content

并且不要忘记编辑index.php文件中的包含路径以使用新位置