我有一个有几个类别的商店。商店中的大多数产品分为2-3类。 我想每个产品只有一个网址 - domain.com/product_name.html。 我不希望产品中包含类别路径的URL。
我将“使用产品网址的类别路径”设置为“否”,但是当我重新编制目录网址重写索引时,它会为每个产品创建一个常规网址(domain.com/product_name.html),并为每个类别路径创建一个网址( domain.com/category_path/product_name.html)。
我删除了包含类别路径的所有产品网址重写,但是当我重新编制目录网址重写索引时,它会重新创建它们。
“产品网址的使用类别路径”配置是否应该阻止此操作?我错过了什么吗?
我正在使用Magento ver。 1.7.0.0
由于
答案 0 :(得分:1)
根据您的Magento版本以及设置这些网址的目的,您可能希望使用更新版本中的规范网址功能。
答案 1 :(得分:0)
我认为您误解了配置设置。
设置完全符合您的描述:每个类别都有一个网址,而且所有网址都有一个网址。
问题是,产品没有MAIN类别。因此,如果您不在类别视图中,例如在小部件的主页上,magento不知道哪个类别应该用作网址锚。
如果您处于笼养视图中,则所有网址都应该是类别/产品网址,如果您在主页上并执行此处所述的操作:http://www.magentocommerce.com/wiki/groups/248/display_products_on_home_page没有类别调用。
答案 2 :(得分:0)
Shani1351,我遇到的问题与你相同。 我做了同样的操作: - 将“使用产品URL的类别路径”设置为“否”。 - 清除缓存。 - 截断'core_url_rewrite'。 - 清除缓存。 - 然后检查我的url重写数据(从后端)。我看到每个产品都有很多网址(每个相关链接类别都有一个网址)。
但如果您在首页上查看,您会发现产品AS预测只使用了一个网址。
我认为Magento需要生成“整个包”网址,但不要在前端使用它们。
我最初的回答是错误的。产品网址将返回类别路径。
为了帮助magento获得没有类别路径的重写产品网址,我建议您覆盖以下方法(这里是POC,仅用于演示。不要修改核心文件,永远不要!):
Mage_Catalog_Model_Product_Url :: getUrl()
public function getUrl(Mage_Catalog_Model_Product $product, $params = array())
{
$routePath = '';
$routeParams = $params;
$storeId = $product->getStoreId();
if (isset($params['_ignore_category'])) {
unset($params['_ignore_category']);
$categoryId = null;
} else {
$categoryId = $product->getCategoryId() && !$product->getDoNotUseCategoryId()
? $product->getCategoryId() : null;
}
if ($product->hasUrlDataObject()) {
$requestPath = $product->getUrlDataObject()->getUrlRewrite();
$routeParams['_store'] = $product->getUrlDataObject()->getStoreId();
} else {
$requestPath = $product->getRequestPath();
if (empty($requestPath) && $requestPath !== false) {
$idPath = sprintf('product/%d', $product->getEntityId());
if ($categoryId) {
// $idPath = sprintf('%s/%d', $idPath, $categoryId);
}
查看注释行(CE 1.7.0.2上的194)。 这是有罪的!
只需在覆盖模块中删除此行:
$idPath = sprintf('%s/%d', $idPath, $categoryId);
希望它可以帮助别人。
答案 3 :(得分:0)
我们遇到了同样的问题,我们为我们的产品分配了多个类别,最终在Google网站管理员工具中出现了重复内容,因为即使产品完全相同,Google也将其视为不同的网址。我们最终得到了以下令人讨厌的网址
oursite.com/catgory-1/product-1.html
oursite.com/catgory-2/product-1.html
oursite.com/catgory-3/product-1.html
oursite.com/product-1.html
我们调查并发现了以下扩展,它完全符合Magento配置("使用产品网址的类别路径" =" NO")应该完成的工作
http://www.magentocommerce.com/magento-connect/seo-unique-catalog-urls.html
我必须说这个扩展或功能应该是开箱即用的Magento。
无论如何希望它可以帮到某人。
干杯
取值
答案 4 :(得分:0)
对于最佳SEO做法,我们希望同时启用类别和产品的规范元标记。但是,为什么Magneto文档有一个推荐或列表作为一个或另一个示例?
如果要搜索引擎仅索引具有完整类别路径的页面,请执行以下操作: 一种。将“类别的使用Canonical Link元标记”设置为“是”。 b。将产品的使用规范链接元标记设置为“否”。
如果您希望搜索引擎仅对产品页面编制索引,请执行以下操作: 一种。将产品的使用规范链接元标记设置为“是”。 b。将“使用Canonical Link元标记作为类别”设置为“否”。
一个或另一个的好处是什么?
我正在猜测最佳做法(就我而言,我的客户产品类似,但是我让他们手动创建包含唯一关键字的最佳URL结构,我们正在尝试为每种产品排名)公式是SEO的最佳选择?
使用产品URL的类别路径:否 使用Canonical Link元标记作为类别:是 对产品使用Canonical Link元标记:是