我的zend中有一个问题,我在.htaccess中编写规则,将url中的“public”删除,如下所示,
------------------------------------------------------------------------
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain-name.com/$ [OR]<br/>
ReWriteCond %{REQUEST_URI} !public/<br/>
ReWriteRule ^(.*)$ public/$1 [L]<br/>
------------------------------------------------------------------------
但是在zend中有ROUTE方法,我已经使用它用于多种语言在URL中设置语言代码 www.domain-name.com/en / ,使用 zend_controller_router_route_chain ,
在此方法实施之前,我的网址是 www.domain-name.com 但是 当我在我的zend项目中使用这个方法时,可能会覆盖.htaccess从URL中删除“public”的规则或者使用相同的东西发生的事情,而“public”在URL中显示如 www.domain-name.com/public
因此,在ZEND框架中使用 ROUTE 的任何方法是否有任何方法或从网上删除公共网页
谢谢,
MRJethva
答案 0 :(得分:9)
以下适用于我使用ZF2.2
在ZF2根目录上创建index.php并添加以下内容:
<?php
define('RUNNING_FROM_ROOT', true);
include 'public/index.php';
在ZF2根目录上创建.htaccess并添加以下内容:
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteRule .* index.php
最后,在layout.phtml文件的顶部添加此条件语句:
<?php
if (defined('RUNNING_FROM_ROOT')) {
$this->plugin('basePath')->setBasePath($this->basePath().'/public');
} ?>
享受!
参考:http://akrabat.com/zend-framework/zend-framework-on-a-shared-host/
答案 1 :(得分:2)
是的,您不需要Zend_Route
。删除public
文件夹并将Zend Framework文件(index.php
,.htaccess
等)放入根目录(例如htdocs
)。您可以将application
文件夹和其他Zend Framework文件放在Web根目录之外的无法通过HTTP访问的位置。
您需要做的只是修改index.php
并将APPLICATION_PATH
更改为正确的路径。这样Zend应用程序将从您的根目录运行,您不需要使用mod_rewrite
来隐藏公用文件夹。
有关类似示例,请参阅this answer的最后一部分。
答案 2 :(得分:0)
zf2和zf3从网址
中删除公开创建index.php和.htaccess在项目根目录中添加文件
在index.php中添加这一行 的 include_once(&#34;公共/ index.php的&#34); 强>
和.htaccess文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
之后转到以下路径
模块 - &gt;应用程序(模块名称) - &gt; view-&gt; layout-&gt; layout.phtml 更改css和js路径在路径中添加public
前
- &GT; prependStylesheet($这 - &GT;基本路径(&#39; CSS / bootstrap.min.css&#39;))
- &GT; prependFile($这 - &GT;基本路径(&#39; JS / bootstrap.min.js&#39;))
后
- &GT; prependStylesheet($这 - &GT;基本路径(&#39;公共/ CSS / bootstrap.min.css&#39;))
- &GT; prependFile($这 - &GT;基本路径(&#39;公共/ JS / bootstrap.min.js&#39;))
也在图片路径中