Установка проекта Zend на хостинг с доступом только к общедоступному каталогу - PullRequest
1 голос
/ 07 декабря 2011

Я разработал проект на Zend Framework на Ubuntu. Я создал виртуальный хост на моей локальной машине для тестирования. Он отлично работает на моей локальной машине. Это запись для виртуального хоста на локальной машине.

<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

Я попросил их решить, но они сказали, что это невозможно. Есть ли какое-либо решение для программирования / настройки этого.

Спасибо

Edit:

У меня уже есть подписка .htaccess в /www.example.com/web/content/public

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 ]

3 голосов
/ 07 декабря 2011

В зависимости от веб-сервера, который они используют, и конфигурации, которую они имеют, вы можете переопределить некоторые конфигурации, например, вы можете изменить корень документа с помощью правил перезаписи 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 голос
/ 20 декабря 2011

это просто, просто переместите содержимое общедоступного каталога в родительский, чтобы все файлы в /www.example.com/web/content/public стали на /www.example.com/web/content

ине забудьте отредактировать include-путь внутри файла index.php для работы с новым местоположением

1 голос
/ 08 декабря 2011

положить файл 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
...