2010-03-14 145 views
1

我想链接到一个zend_controller受控页面的纯HTML页面。我不知道如何做到这一点。我尝试了'重定向(site/somedir/some.html)',但是,当然,这是行不通的。 谢谢如何从zend_controller受控页面重定向到纯HTML页面?

HTML文件位于网站= ZF-网站的公共目录/公共

+0

纯HTML页面在哪里? – 2010-03-14 20:27:19

+0

Pekka,html文件位于site = zf-site/public/deploy的公共目录的子目录中。 – curro 2010-03-15 01:10:34

+0

对我来说,解决方案可能是编辑public目录的.htaccess文件中的重写规则,但是我又不知道或理解重写语法。 – curro 2010-03-15 01:30:41

回答

2

回复意见:

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php 

使用第3和4号线到说如果文件或目录存在,则不重定向。你可以将这两行添加到你的.htaccess文件中,而你的.html文件将作为正常的。

+0

它绝对有效! 谢谢,smack0007。经过多次尝试,出现了一些问题,我终于用它代替了我发布的.htaccess最后一行!\。(js | .... – curro 2010-03-15 18:02:25

+0

我试图给出这个答案的观点,但看起来我有一个很糟糕的声望;-) 再次感谢你啪 – curro 2010-03-15 18:06:19

0

在你的动作控制器,你可以这样做:

$this->_redirect('site/somedir/some.html'); 

但是你也需要请确保此some.html位于文档根目录中的某个位置,并且可以通过网络访问,其中所有视图脚本可能都位于其上方。在这种情况下,如果你把这个静态的HTML文件到其他视图脚本是相同的文件夹 - 这是不行的......

+0

谢谢Laimoncijus和Pekka。有用!问题在于,从该html页面链接到其他html页面,zfw将请求视为zfw请求,当然,它告诉我指定的控制器(其他html页面所在子文件夹的名称)无效。我需要的是重写前端控制器的默认行为,并使其将这些请求视为纯html请求。 – curro 2010-03-15 00:33:07

+0

Laimoncijus,你的解决方案如果html页面位于公共目录中,如果你想访问子目录,你会得到一个'invalid controller specified(somedir)'异常。 – curro 2010-03-15 01:35:16