2012-01-06 70 views
1

(可能它的工作原理与设计,但我敢肯定它更新到ZF 1.11.x前的工作。)Zend框架的URL以“.jpg”结尾

我想“打印“在浏览器中的图像,但是当我构造URL是这样的:

webserver/index/get-image/PARAM1/xyz/IMAGE/1.jpg 

我从服务器

webserver/index/get-image/IMAGE/1.jpg/PARAM1/xyz 

得到错误作品..

任何想法?

+0

什么控制器/动作你要通过你的所需的URL调用?您是创建任何自定义路线还是仅使用默认路线? – 2012-01-06 09:31:12

+0

index Controller/getImageAction,只是默认路由 – opHASnoNAME 2012-01-06 09:53:03

+2

只是一个快速的想法,我没有资源来检查atm:/ public中的.htaccess是否有任何更改? – cypherabe 2012-01-06 10:01:45

回答

2

404错误是最有可能是因为您在Web服务器定义的规则(如的.htaccess)的网址以.jpg结尾不应该重写index.php文件(如RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]

使用时阿帕奇,下面应该工作:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

欲了解更多信息,请访问http://framework.zend.com/manual/en/zend.controller.router.html

+0

感谢您忘记了小小的htaccess文件:-) – opHASnoNAME 2012-01-07 05:15:05

0

其实,这两个网址还有一个区别,它是get-image动作(我假设它是一个动作,如果它是ZF)。尝试在第二个链接上添加或删除操作并回传结果。

0

尝试Zend_Route如下

$route = new Zend_Controller_Router_Route(
    'images/:img', 
    array(
     'controller' => 'index', 
     'action'  => 'getImageAction' 
    ) 
); 

$router->addRoute('user', $route); 

,现在当你去到服务器/图片/ pic1.jpg,你将有一个参数(通过$this->getRequest->getParam('img')从您检索控制器)可用于任何你希望的。 GL

编辑:我现在看到这不是你的问题,但这可能是一个富有成效的解决方法。