如何将第三方应用程序添加到Zend Framework 2 MVC(Apache)中?

时间:2013-01-30 18:53:08

标签: php apache zend-framework2 zend-framework-mvc

好的,我正在使用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 个答案:

答案 0 :(得分:4)

试试这个:

<IfModule mod_rewrite.c>
 RewriteEngine On 
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
</IfModule>

这将检测到/ blog /是一个真正的目录,它将被访问得很好。 然后,您可以在博客文件夹中创建一个htaccess文件来执行您需要的重写,并在访问博客目录时覆盖基本的htaccess

答案 1 :(得分:3)

我觉得你已经敲了敲头。 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;)

祝你好运!

答案 2 :(得分:0)

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]