Magento:如何删除所有永久重定向

Posted

技术标签:

【中文标题】Magento:如何删除所有永久重定向【英文标题】:Magento: how to remove all permanent redirects 【发布时间】: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 下禁用或删除这些特定的请求路径和目标路径条目,但它们没有任何效果。

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

关于 core_url_rewrite,我们有一个人正在帮助我们进行 Magento 编程,他告诉我们不应该删除 core_... 中的任何内容。在这篇文章之前,我曾问过他关于截断它的问题,他很犹豫。截断此表是否只会影响已进行的重定向而不影响其他任何内容?我们只是希望我们的产品 URL 是其名称的清理版本,就像在那个“白衬衫 A”示例中一样。 不,截断 core_url_rewrite 表对除 url 重写(REDIRECT)之外的其他功能没有任何影响。在 core_url_rewrite 表中创建新的(干净的)URL 之后进行目录 URL 索引 见这里:youtube.com/watch?v=8xttr_ILd6A&feature=player_embedded 修复奇怪的 URL 重写 yireo.com/tutorials/magento/magento-administration/… 感谢您的链接!再问你一个问题。在清空重写表之前,我们将系统 -> 配置 -> 目录 -> 目录 -> 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 扩展程序,它可以让您从管理面板清除所有永久重定向。

【讨论】:

以上是关于Magento:如何删除所有永久重定向的主要内容,如果未能解决你的问题,请参考以下文章

使用重定向从 URL 中删除 .html

如何在完美的框架中取消/删除使用服务器端 swift 重定向客户端

Magento - PayPal 未重定向到移动网站

如何删除“paypal/express/review”步骤

删除旧的固定链接?

如何删除 php 扩展并将扩展重定向到无扩展表单