启用Friendly-URL时未显示PrestaShop图像

时间:2019-05-07 12:27:28

标签: prestashop prestashop-1.6

在安装新的SSL证书并将PHP版本从5.x更改为7.1.28后,前端不再显示产品映像,Chrome开发人员工具会显示该映像文件的404错误。 它们在后端的产品目录下可见。

看起来好像缺少图像目录,即/ home-default /之类的东西,因为在HTML代码中图像文件应该直接位于文档根目录中,这显然是错误的。

当我关闭“友好URL”时,将显示图像。 到目前为止,我尝试过的事情:

  1. 已删除.htaccess,将“友好URL”切换为“ on”以重新生成.htaccess
  2. 清空缓存并重新生成图像缩略图
  3. 切换回PHP 5.4
  4. 将AllowOverride All添加到了vhost配置中

没有任何帮助。在服务器上还有另一个PrestaShop安装,在PHP 7.1.28下也运行相同的PrestaShop版本1.6.18,在那里的“友好URL”工作正常。

我必须说我不知道​​在哪里照顾这个问题。

1 个答案:

答案 0 :(得分:1)

使用@Harry一段时间后,调试了他的配置,我们找到了解决方案,并且我相信这会对其他许多人有所帮助。

@Harry与Nginx + Apache结合使用。

  1. 我们检查了他的PrestaShop .htaccess文件,并确保RewriteEngine处于打开状态并已正确触发(例如,页面已正确重写,只有图像没有被重写)-一切正常。
  2. 我们尝试编写一个基本的RewriteRule来重定向.jpg,但它不起作用,显示了Nginx 404页面。
  3. 我们得出的结论是Nginx正在处理所有静态内容(JS,CSS,JPEG等),而不是将其转发给Apache。

解决方案

我们从Nginx配置中删除了这部分:

location ~ ^/(.*\.(ac3|avi|bmp|bz2|cue|dat|doc|docx|dts|eot|exe|flv|gz|htm|html|img|iso|jpeg|mkv|mp3|mp4|mpeg|mpg|ogg|ppt|pptx|qt|rar|rm|swf|tar|tgz|ttf|txt|wav|xls|xlsx|zip))$ {
                try_files $uri @fallback;
}

作为一般建议,我建议不要使用Apache + Nginx,PrestaShop已经可以与Nginx + PHP-FPM很好地配合使用,并且您将获得出色的性能。

如果选择此解决方案,请不要忘记直接在Nginx(Example)中设置PrestaShop重写规则。