【问题标题】:Magento: how to remove all permanent redirectsMagento:如何删除所有永久重定向
【发布时间】:2012-07-25 06:46:03
【问题描述】:

我们遇到了一个问题,即我们正在处理的 Magento 商店中存在不需要的永久重定向,我希望了解如何从这些重定向方面的空白开始。我们不需要任何东西,因为它是一个开发中的站点,我们也不希望在此域内重定向任何内容。商店没有直播,下面是发生的事情。

我们不知道系统 -> 配置 -> 目录 -> SEO 下的 URL 重写管理选项,因此对于“创建永久重定向...”将其标记为“是”一些产品是通过提要上传的,但它们上传不正确。所以,我们重新上传它们以覆盖。结果是“White Shirt A”在管理员或导出的数据馈送中的 URL 键为“white-shirt-a.html”,但显示该产品的实际链接是“white-shirt-a-1”。 .html。”如果我们转到“white-shirt-a.html”,它会给我们一个 404 Not Found。

我们如何清除所有这些永久重定向?我们已经尝试在 Catalog -> URL Rewrite Mangement 下禁用或删除这些特定的请求路径和目标路径条目,但它们没有任何效果。

【问题讨论】:

    标签: magento url-rewriting


    【解决方案1】:

    如果您的商店尚未上线,请按照以下步骤操作:

    1. 从数据库中清空/截断core_url_rewrite 表。

    2. 从 Magento 后端禁用永久重定向。

    3. 重新索引目录 URL 重写,您的所有 URL 都将得到更正。

    【讨论】:

    • 关于 core_url_rewrite,我们有一个人正在帮助我们进行 Magento 编程,他告诉我们不应该删除 core_... 中的任何内容。在这篇文章之前,我曾问过他关于截断它的问题,他很犹豫。截断此表是否只会影响已进行的重定向而不影响其他任何内容?我们只是希望我们的产品 URL 是其名称的清理版本,就像在那个“白衬衫 A”示例中一样。
    • 不,截断 core_url_rewrite 表对除 url 重写(REDIRECT)之外的其他功能没有任何影响。在 core_url_rewrite 表中创建新的(干净的)URL 之后进行目录 URL 索引
    • 感谢您的链接!再问你一个问题。在清空重写表之前,我们将系统 -> 配置 -> 目录 -> 目录 -> SEO -> “如果 URL 密钥更改,则为 URL 创建永久重定向”为 NO。您知道为什么即使在重新索引重写和清除缓存之后,管理员的产品的“URL key”值仍然不是该产品的实际 URL?是不是因为它们是永久性的,除非我们清空它,否则数据库中的信息不会改变?我们尝试从 core_ul_rewrite 中删除一行,它似乎修复了它。
    • 是的,这些 URL 是系统创建的 url,在索引后创建自定义 URL,这些 URL 直接在网站中使用。希望这能解决您的目录重写问题。
    【解决方案2】:

    我不保证这是安全的。但到目前为止,它似乎奏效了。

    我已经运行了这个查询:

    "删除 * FROM core_url_rewrite WHERE is_system != 1";

    该查询删除了所有 自定义 重写规则,其中我们有大约 500,000 条。其中大部分是在有人关闭搜索引擎优化中的“.html”扩展名而不将“更改网址时创建重写规则”更改为“否”时创建的。

    【讨论】:

      【解决方案3】:

      要删除所有永久重定向,您可以:

      1) 执行直接查询(不推荐):

      DELETE FROM core_url_rewrite WHERE options IS NOT NULL AND is_system = 0
      

      2) 动作更轻柔:

      $write = Mage::getSingleton('core/resource')->getConnection('core_write');
      try {
          $write->beginTransaction();
          $table = Mage::getSingleton('core/resource')->getTableName('core/url_rewrite');
          $count = $write->exec('DELETE FROM ' . $table . ' WHERE options IS NOT NULL AND is_system = 0');
          $write->commit();
          $this->_getSession()->addSuccess($this->__('Successfully removed %s redirects.', $count));
      } catch(Exception $e) {
          $write->rollback();
          $this->_getSession()->addException($this->__("An error occurred while clearing url redirects: %s", $e->getMessage()));            
      }
      

      3) 或者您可以安装Custom Product Urls 扩展程序,它可以让您从管理面板清除所有永久重定向。

      【讨论】:

        猜你喜欢
        • 2016-10-07
        • 1970-01-01
        • 2013-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 2013-02-03
        相关资源
        最近更新 更多