Zend Framework URL末尾带有“.jpg”

时间:2012-01-06 07:30:12

标签: php zend-framework

(可能它按设计工作,但我确定它在更新到 ZF 1.11.x 之前有效。)

我正在尝试将图像“打印”到浏览器,但是当我构建这样的URL时:

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

我从服务器

收到 404 错误
webserver/index/get-image/IMAGE/1.jpg/PARAM1/xyz 

作品..

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

404错误很可能是因为您已在Web服务器规则(例如.htaccess)中定义了不应将以.jpg结尾的URL重写为index.php(例如RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]

使用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]

有关详情,请转至http://framework.zend.com/manual/en/zend.controller.router.html

答案 1 :(得分:0)

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

答案 2 :(得分:0)

按如下方式尝试Zend_Route

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

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

现在当你去server / images / pic1.jpg时,你将拥有一个param(通过$this->getRequest->getParam('img')从你的Controller中检索)可用于你想要的任何东西。 GL

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