Prestashop重写规则呈现错误的图像路径

时间:2014-07-26 08:21:54

标签: .htaccess prestashop prestashop-1.5

我们目前正在使用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">

Unfortuanetly; Prestashop在第一个产品ID之间添加斜杠;

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

我不确定但它是某种.htaccess rewriterule问题。 我们的.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

如果遇到某种问题,有人可以提供帮助吗?

2 个答案:

答案 0 :(得分:1)

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

如果您想使用自定义图片路径,请在product.tpl中使用以下内容更改图片代码:

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

答案 1 :(得分:0)

从乔恩·林的答案here

复制而来

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

<base href="/" />