Shared Hosting & mod_rewrite

Автор оригинала: Lorenzo Alberton
  • Перевод
Небольшой совет для тех кто пишет приложения на Zend Framework с использованием структуры директорий рекомендуемой в мануале и, по умолчанию, в Zend_Tool и размещает их по тем или иным причинам на shared хостингах.

Структура ваших директорий имеет вид:
projectname/<br>  application/<br>   controllers/<br>   views/<br>     scripts/<br>  library/<br>  public/<br>  tests/
Директория public содержит файлы которые должны отдаваться пользователю веб сервером, по-этому ее необходимо устанавливать как DOCUMENT ROOT. Проблема заключается в том что часть хостеров не предоставляет доступа у изменению этого параметра, а так же к директориям выше уровнем, т. е. когда вы подключаетесь по FTP самый верхний уровень на который вы можете попасть — это внутрь DOCUMENT ROOT.

Без изменения структуры директорий эту проблему можно решить удалив из «public» стандартный .htaccess и разместив в корне слудующий .htaccess:
RewriteEngine On<br> <br>RewriteRule ^\.htaccess$ - [F]<br> <br>RewriteCond %{REQUEST_URI} =""<br>RewriteRule ^.*$ /public/index.php [NC,L]<br> <br>RewriteCond %{REQUEST_URI} !^/public/.*$<br>RewriteRule ^(.*)$ /public/$1<br> <br>RewriteCond %{REQUEST_FILENAME} -f<br>RewriteRule ^.*$ - [NC,L]<br> <br>RewriteRule ^public/.*$ /public/index.php [NC,L]

P. S.
Так же этот вариант отлично подойдет пользователя пакета Denwer.
Поделиться публикацией

Комментарии 2

    0
    Пишу как раз на денвере. Достаточно кинуть все из паблика в www и все работает.
    Но тем не менее за пост спасибо — вероятно подобное решение скоро понадобится.
      0
      Если используется еще и SVN — такой вариант не очень подойдет.

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое