如何在zend框架中使用路由从URL中删除"public"

MRJ*_*hva 1 zend-framework routes

在我的zend中有一个问题,我在.htaccess中编写规则以从url中删除"public",如下所示,

------------------------------------------------------------------------ 
RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain-name.com/$ [OR]<br/>
ReWriteCond %{REQUEST_URI} !public/<br/>
ReWriteRule ^(.*)$ public/$1 [L]<br/>
------------------------------------------------------------------------ 
Run Code Online (Sandbox Code Playgroud)

但是在zend中有ROUTE方法,我使用它用于多种语言在url LIKE www.domain-name.com/en/中设置语言代码,使用zend_controller_router_route_chain,

在这个方法实现之前,我的网址是www.domain-name.com,但是
当我在我的zend项目中使用这个方法时,可能会覆盖.htaccess从URL中删除"public"的规则或者使用它来发生的事情和"public"是在网址中显示,如www.domain-name.com/public.

那么,有没有方法或技巧,REMOVE公众免受URL中使用的任何方法ROUTE Zend框架???

谢谢,

MRJethva.

小智 9

以下适用于我使用ZF2.2

在ZF2根目录下创建index.php并添加以下内容:

<?php 
define('RUNNING_FROM_ROOT', true);
include 'public/index.php';
Run Code Online (Sandbox Code Playgroud)

在ZF2根目录下创建.htaccess并添加以下内容:

SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteRule .* index.php
Run Code Online (Sandbox Code Playgroud)

最后,在layout.phtml文件的顶部添加此条件语句:

<?php 
if (defined('RUNNING_FROM_ROOT')) {
  $this->plugin('basePath')->setBasePath($this->basePath().'/public');
} ?>
Run Code Online (Sandbox Code Playgroud)

请享用!

参考:http://akrabat.com/zend-framework/zend-framework-on-a-shared-host/