我在Magento网站上启用了目录图片缓存,产品页面上的图片网址是 http://www.example.com/media/catalog/product/cache/2/image/9df61e8b45590e35df96d9f179ca0b11/p/r/product-name.jpg
现在Google Bot抓取网站会在网址上为这些图片编制索引。但是,一周后,由于以下几个原因,此图像可能不存在: 1.目录缓存已清除。 2.产品图像被更改/覆盖。
当发生这种情况时 - 即使图像显示在图像的Google搜索结果中,在点击访问页面或查看图像时 - 由于服务器上不存在图像,因此不会打开图像。
由于网址结构是默认的Magento结构,我想知道如何进行更改,以便图片链接在Google搜索结果中有效。
答案 0 :(得分:0)
您可以编写自定义PHP脚本并自行调整图像大小。
并将产品图片请求重定向到自定义脚本。
在媒体模板文件中,您可以定义图像,例如:
productimage / 14432/1/2 .jpg(其中14432将是product_id,1可能是主图像/样本等,而2.jpeg 3.jpg可能负责大小等图像变体)
然后在.htaccess中,您可以将所有productimage URL重定向到自定义脚本,并在该脚本内部解析来自url和process image的参数(如果需要,可以缓存)
RewriteCond %{REQUEST_URI} ^/productimage
RewriteRule .* imgcustomprocessing.php [L]
imgcustomprocessing.php 这样的脚本可能会像这样开始(只是一个粗略的想法)
<?php
require_once 'app/Mage.php';
Mage::app( "default" );
$req = $_SERVER['REQUEST_URI'];
$req = explode('/',$req);
$req = array_filter($req);
$req = array_values($req);
$product_id =$req[1];
$product = Mage::getModel('catalog/product')->load($product_id);
//to get a real image path
$url = Mage::getUrl('media') . 'catalog/product' . $product->getImage();
// then here load php libraries for image resizing for example http://phpthumb.sourceforge.net/ pass the $url
// put here code for re-sizing image/caching and displaying