【问题标题】:Magento 1.7 SEO friendly URLs and multi store viewsMagento 1.7 SEO 友好的 URL 和多商店视图
【发布时间】:2012-12-18 06:24:24
【问题描述】:

Magento 具有用于创建自定义 SEO 友好 URL 键的产品和类别字段。 但是当你有多个商店时,你通常不能有不同的 URL 键 对于不同的商店,因为字段 url_key 默认为“GLOBAL”。对于产品, 您可以将 url_key 属性的 is_default 字段从 Attribute 更新为“Store Views” 管理。但是对于类别的 url_key 字段,您在 Magento 中没有该选项。 但是该字段确实存在于数据库中,具有相同的属性代码但具有不同的属性代码 backend_model 所以你需要直接去数据库,把‘is_global’字段1改成0。

参考:http://www.devraju.com/magento/different-category-url-keys-for-different-store-views-in-magento/ 请参阅页面底部的 cmets。

同样的问题: Magento multilanguage - double change in language resuts in 404 (or how to change language within stores not views)

这种策略似乎在旧版本中有效,但在 7.1 中我遇到了麻烦。当我转到目录 >> 属性 >> 管理属性时, url_key 属性已经设置为存储视图。见下图。

此外,属性表看起来配置正确。请参阅下面的 SQL。

切换代码如下所示:

    <?php if(count($this->getStores())>1): ?>
    <div class="form-language">
        <label for="select-language"><?php echo $this->__('Your Language:') ?></label>
        <select id="select-language" title="<?php echo $this->__('Your Language') ?>" onchange="window.location.href=this.value">
        <?php foreach ($this->getStores() as $_lang): ?>
            <?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?>
            <option value="<?php echo $_lang->getCurrentUrl() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option>
        <?php endforeach; ?>
        </select>
    </div>
    <?php endif; ?>        

SQL

SELECT * FROM eav_attribute WHERE attribute_code LIKE '%url_key%';  

attribute_id Attribute Id   entity_type_id Entity Type Id   attribute_code Attribute 
    Edit    Delete  43  3   url_key  catalog/category_attribute_backend_urlkey  
    Edit    Delete  97  4   url_key  catalog/product_attribute_backend_urlkey  


SELECT attribute_id, is_global FROM catalog_eav_attribute WHERE attribute_id=43;
SELECT attribute_id, is_global FROM catalog_eav_attribute WHERE attribute_id=97;


Full Texts  attribute_id Attribute ID   is_global Is Global
    Edit    Delete  43  0


Full Texts  attribute_id Attribute ID   is_global Is Global
    Edit    Delete  97  0

我也尝试使用重写规则来解决它,但是重写规则似乎没有涵盖语言切换。参考:http://www.magentocommerce.com/wiki/modules_reference/english/mage_adminhtml/urlrewrite/index

我正在寻找具有适当代码修改的解决方案。

【问题讨论】:

  • 在 Vanilla Magento 1.7.0.2 上运行良好......所以它是你的东西......你在将 url_key 更改为存储视图级别后运行了重新索引吗?

标签: magento url translation


【解决方案1】:

这件事也花了我几天时间。我在相关表中应用了更改 is_global 字段,但这只适用于我的本地服务器,无法使其在实时服务器上运行(不知道为什么)。

尝试了多种解决方案,我从管理面板中发现了一个简单的解决方案。

试试

目录-> URl 重写管理-> 添加 url 重写-> 选择'for category' -> 选择类别 -> 选择商店,添加网址,选择重定向“否”并保存。

注意:这可能不会影响您的菜单链接,您可以在菜单类别链接中添加自定义 URL。

【讨论】:

    【解决方案2】:

    这篇文章对您有帮助吗?

    https://mobweb.ch/2014-08-22-multi-language-magento-shop-translate-category-and-product-urls/

    似乎解决了你的问题

    【讨论】:

      【解决方案3】:

      如果您复制当前类别根树并使用不同的 url 键,然后为每个商店分配它自己的根类别树怎么办。 (不是理想的解决方案,但无需任何修改或编程即可工作)

      Creating and Assigning Root Categories

      【讨论】:

      • 想法是在英语和西班牙语商店视图中从类别和产品来回切换,例如:/sugar 到 /uzucar。问题不在于类别树。问题是为每个商店定义了 url 的产品不会相互链接。
      【解决方案4】:

      我遇到了同样的问题,在创建新产品时显示错误 “具有“url_key”属性的产品已经存在”

      我将 url_key 更改为可选字段,它对我有用。

      【讨论】:

        猜你喜欢
        • 2013-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-03
        • 2013-11-15
        • 1970-01-01
        • 2011-08-25
        相关资源
        最近更新 更多