Как добавить стороннее приложение в Zend Framework 2 MVC (Apache)?
Итак, я использую Zend 2 Framework и следовал базовому стилю Zend MVC. Но допустим, я хочу добавить site.com/blog (и блог, являющийся сторонним приложением). Так как же мне добавить это? Как мне сказать фреймворку игнорировать / блог? Будет ли это просто изменение.htaccess? (Я использую Apache)
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 ответа
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} !^blog.*$
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Попробуй это:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Это обнаружит, что /blog/ является реальным каталогом, и доступ к нему будет очень хорошим. Затем вы можете иметь файл htaccess в папке блога, чтобы делать там все, что вам нужно переписать, и это переопределит базовый htaccess при доступе к каталогу блога.
Я думаю, что ты ударил гвоздь по голове. ZF2 будет интерпретировать свои маршруты только после того, как веб-сервер сделает свое дело - так что это на самом деле не является фактором (и не должно быть!). Ради эффективности я настоятельно рекомендую указывать местоположение вашего блога как отдельную сущность местоположения в конфигурации вашего веб-сервера (так что это никогда не коснется берегов ZF2). Nginx делает это действительно изящно, вот пример конфигурации:
location ^~ /blog {
root /var/www/example.com;
index index.php index.html index.htm;
try_files $uri $uri/ /blog/index.php;
location ~ \.php {
fastcgi_split_path_info ^(.*\.php)(.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
}
}
Происходят самые разные вещи, вы можете держать свой WordPress отдельно от вашего ZF2 (во всех отношениях), и это никак не повлияет на производительность. Я не танцевал с Apache некоторое время, но я уверен, что есть эквивалентная структура. Стороны, иди NGINX;)
Удачи!