WordPress и приложение Zend Framework работают вместе?

#php #apache #zend-framework

#php #apache #zend-framework

Вопрос:

У меня на моем сайте WordPress запущен в корневом каталоге, т.Е.: mysite.com/

И мне нужно создать приложение ZF и разместить его в подкаталоге моего хостинга, то есть: mysite.com/backend

Я сделал это в своем корневом каталоге:

% zf создать серверную часть проекта

Он создал «внутренний» каталог под моим корневым каталогом со всем проектом внутри.

В моем корневом каталоге у меня есть этот файл .htaccess:

 RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
  

В webroot / backend / public у меня есть этот .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]
  

Я использую ZF 1.11

Чего я не могу понять, как я должен настроить, так это файлы .htaccess, чтобы это приложение zf работало в подкаталоге.

С уважением!

Ответ №1:

В настоящее время у вас есть серверная часть папки. Итак, это выглядит

mysite.com/backend

Теперь, когда вы создаете проект с

 zf create project <project name> 
  

вы получите структуру каталогов. С этого момента index.php и .htaccess (из общей папки) в серверную папку.

Загрузите всю оставшуюся папку в ту, которая недоступна через Интернет. ie ниже корневого каталога веб-сайта (общедоступный или как вы там называете)

Измените APPLICATION_PATH в index.php внутренней папки в соответствии с тем, где сейчас находится папка вашего проекта.

С zend Framework это очень просто. Надеюсь, это поможет вам.

Может быть, вы хотите посмотреть, разрешит ли wordpress .htaccess доступ к каталогу, который уже есть.

Ответ №2:

Мне пришлось поместить этот файл .htacess внутрь mysite.com/backend

 RewriteEngine On
RewriteRule !.(csv|js|gif|jpg|png|css|txt)$ public/index.php [L]
  

И затем в моем Bootstrap.php это:

 public function run() {
        $front   = $this->getResource('FrontController');
        $front->setBaseUrl('/backend');
}
  

Таким образом, Zend может маршрутизировать запросы правильным образом.