使用Magento的典型特徵將是解決這一問題的最簡單的方法。唯一的缺點是它不會包含類別名稱,並可能錯過URL中的其他關鍵字。如果您擁有編程技能或預算來開發或購買模塊,那麼下一個最好的方法就是開發或購買模塊。如果您的預算有限,如果您願意進行一些修改和數據輸入/數據庫導入,您可能無需花費任何金錢即可離開。
我不是一個非常好的程序員,但我解決了這個問題,添加了一個新屬性,比如說canonical_category。在Magento 1.8之前,我可以用基於類別ID的新值覆蓋$ categoryid。例如,無論我想設置爲規範鏈接,我只需在新的屬性字段中輸入一個數字,它就會生成與該類別的鏈接。
Magento 1.8略有不同,因爲他們看起來像他們更新該部分。不幸的是,我現在無法看到它,並告訴你如何獲得相同的功能,但我很快通過了新代碼,並提出了一個解決方法,以防止它可以幫助你。
需要修改的文件是/app/code/core/Mage/Catalog/Model/Product/Url.php。在第267行,我們將找到處理規範鏈接的代碼,函數_getProductUrl。基本上我們打算使用canonical_category值(如果可用的話),並且如果沒有輸入任何內容,只需對原始代碼進行回退。
因此,我們將改變這一行代碼:
if (!empty($requestPath)) {
return $this->getUrlInstance()->getDirectUrl($requestPath, $routeParams);
}
到
if (!empty($requestPath)) {
if($product->getCanonicalCategory()) {
return $this->getUrlInstance()->getDirectUrl($product->getCanonicalCategory());
} else {
return $this->getUrlInstance()->getDirectUrl($requestPath, $routeParams);
}
}
只是要清楚,這一切都將做的是讓你指定你希望你的規範鏈接是什麼,在你的情況下,你想包括類別名稱。您的產品頁面鏈接仍然會顯示爲相同(square-grate.html,/cast-iron/square-grate.html),但根據我的理解,搜索引擎仍會將此視爲同一頁面,只要指定了一個規範鏈接。這應該解決搜索引擎優化問題,但現在有更多的工作,如果你想要使用特定的鏈接。我可以告訴你,任何沒有動態完成的方法都不是最好的方法,但它可以工作,並且可以通過電子表格和數據庫導入輕鬆地更新/生成鏈接。您也可以在需要包含其他[類別]關鍵字的產品上使用它。請注意,爲屬性輸入的URL應該是相對的(即「cast-iron/square-grate.html」)。希望這有助於。
這不是關於堆棧溢出的主題。但http://www.magentocommerce.com/knowledge-base/entry/canonical-meta-tag應該可以解決您的問題。 –
這將是在主題:http://magento.stackexchange.com/ –
我不知道有magento stackexchange。也許有些管理員可以將此主題移至此處。 –