prestashop在lnmpa下图片不显示问题

By | 2011/09/08

Lnmpa是Lnmp的一个扩展,使用Nginx作为前端服务能够更快更及时的静态页面、js、图片等,由nginx接爱请求, 当客户端请求访问动态页面时由Nginx的反向代理给Apache处理,Apache处理完再交予Nginx返回给客户端。这样能大大优化服务器的性能.

最近在迁移中出再了prestashop在lnma下图片不显示问题, 因为原来prestashop的重写规则是在nginx, 现在Lnmpa就全部用apache下的.htaccess来实现重写. 但问题也出来了. 其它的一切都正常, 就是图片不显示.

仔细想了一下,一定是出在.jpg图片在重写上面, 要在nginx的重写规则中加入

rewrite ^/([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg last;
rewrite ^/([0-9]+)\-([0-9]+)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2.jpg last;
rewrite ^/([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg last;

这样图片就会重写了.能够正确的显示出来.

原来Lnmpa是把动态的处理交给apache, 而对于静态的CSS,jpg等还是Nginx在处理. 所以JPG的重写也应该写在nginx的.conf文件中.

所有的处理都是先交给nginx来接受, 由nginx来判断是自己去处理还是交给apache, 而这里因为是JPG图片, nginx自己去处理, 在.htaccess的重写是无效的.

[转载请注明出处]: 登高望远 [ http://www.dengor.com/archives/1291.html ]

3 thoughts on “prestashop在lnmpa下图片不显示问题

  1. Mo

    请问一下改那个conf文件呀?在那个位置添加你上面的那段代码呢!

Comments are closed.