Prestashop重写规则渲染错误的图像路径

问题描述 投票:1回答:2

我们目前正在使用prestashop 1.5.6.2,并通过第三方php函数将一个巨大的xml文件(14k行)导入到mysql中。一切都很好,直到在prestashop中的产品页面为止。但是在产品页面中,prestashop调用图像,如

<img src="http://www.domain.com/img/p/1/1/3/113-large_default.jpg" title="Product Name" alt="Product Name" id="bigpic" width="264" height="264">

我们期望

<img src="http://www.domain.com/img/p/113/113-large_default.jpg" title="Product Name" alt="Product Name" id="bigpic" width="264" height="264">

不幸地; Prestashop在第一个产品ID之间添加斜杠,例如;

/1/1/3/113-large_default.jpg 

我不确定,但这是某种.htaccess重写问题。我们的.htaccess看起来像;

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>

# Disable Multiviews
Options -Multiviews

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.com.tr$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

# AlphaImageLoader for IE and fancybox
RewriteCond %{HTTP_HOST} ^www.domain.com.tr$
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
RewriteCond %{HTTP_HOST} ^www.domain.com.trm$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

# AlphaImageLoader for IE and fancybox
RewriteCond %{HTTP_HOST} ^www.domain.com.trm$
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
</IfModule>

#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404

如果遇到任何问题,任何人都可以提供帮助吗?

.htaccess prestashop prestashop-1.5
2个回答
1
投票

没有重写问题,图像路径正确。

如果要使用自定义图像路径,请在product.tpl中使用以下命令更改图像标签:

<img src="img/p/{$product->id}/{$product->id}-large_default.jpg">

0
投票

摘自林俊仁的回答here

URL中的斜杠会更改相对URL的基数。所有你的 您内容中相对URL的链接现在将使用 不正确的基数。您可以使用绝对网址来解决此问题 (以/开头)或在页面标题中添加基数:

<base href="/" />
© www.soinside.com 2019 - 2024. All rights reserved.