2013-02-24 2 views
0

Я нахожусь на сервере общедоступного хостинга, и я собираюсь разместить там приложение zend, но я не могу коснуться файла httpd.conf, чтобы сделать виртуальный хост, поскольку он является общедоступным, и они не позволяют мне это делать.Должен ли я помещать index.php за пределы общей папки в Zend Framework?

Если я сохраняю файл index.php и .htaccess в общей папке, я должен сделать виртуальный хост, чтобы скрыть публикацию от url.

Итак, я могу поместить файлы общих папок (index.php, .htaccess) в корне сайта, поэтому мне не нужно создавать виртуальный сервер для этого, и мой сайт доступен без необходимости public в url.

Есть ли что-нибудь сделать мой сайт небезопасным, если я помещу файл index.php из общей папки?

Я говорю по-английски не очень хорошо, поэтому сорри. Somethings я скопировал из других сообщений, чтобы описать вещи, которые я хочу объяснить.

Я попробовал этот путь, но он по-прежнему не работает, когда я типа локальный/государственный/Зенд/, он возвращает «Объект не найден»

структура каталогов:

zend/ 
    application/ 
    library/ 
    public/ 
      index.php 
      .htaccess 
.htaccess 

содержание .htaccess в общей папке:

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

содержание .htaccess в корневой е старше:

SetEnv APPLICATION_ENV development 

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] 

ответ

0

Ну, вы не сможете получить доступ к index.php в этом случае. Если вы не можете положить вещи не в веб-корень, то лучше всего, чтобы настроить ZF использовать папку, кроме public в качестве корня док так что ваш макет может выглядеть следующим образом:

application/ 
library/ 
modules/ 
public_html/ 
    index.php 
    js/ 
    css/ 
    images/ 
0

«общественность» папка является важной ключевой особенностью Zend Framework, поскольку он ограничивает Apache только чтением файлов в этом каталоге. У вас не должно быть ничего, кроме общей папки, доступной через HTTP, и перемещение индексного файла представляет собой легкую угрозу для уязвимости для эксплойтов.

Проверьте это this link было бы полезно.

И если вы используете Cpanel this here, может быть полезно.

+0

Я что-то обновил, посмотрю на мой вопрос. благодаря! –

0

Возможно, есть .htaccess и index.php без каких-либо проблем в директории htdocs Apache.

Не обязательно иметь папку под названием «общедоступная», чтобы иметь общедоступную часть (общий каталог (и часть приложения (остальные файлы проекта) в разных каталогах. Часть приложения не должна быть доступна из пользовательской браузер (так поместите его вне корневого каталога документов Apache)

+0

Я что-то обновил, посмотрю на мой вопрос. благодаря! –

0

Есть много способов сделать ZF работу, не имея возможность отображения виртуального хоста в папку public.

This answer подчеркивает многие из них.

Лично я, когда я застрял с хостингом и я не могу переназначить, я склонен сделать следующее:

  1. Хранить содержимое общей папки (index.php, .htaccess, государственные активы, такие как CSS, JS, IMG и т.д.) вверх на уровне хоста при условии корня дока и

  2. Пуш остальных приложений вниз в папку, как _zf, к которому я добавляю Deny All директиву в .htaccess файле. Затем я изменяю настройку APPLICATION_PATH в index.php, чтобы указать на _zf/application.

Всё.

Полное описание here.

+0

Я что-то обновил, посмотрю на мой вопрос. благодаря! –

Смежные вопросы