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

时间:2012-07-26 16:03:05

标签: magento url-rewriting

我们遇到了一个问题,即我们正在处理的Magento商店中存在不需要的永久重定向,我希望看到我们如何从这些重定向的空白板开始。我们不需要任何,因为它是一个开发的网站,我们也不希望在这个域内重定向任何东西。商店不在线,以下是发生的事情。

我们不知道System - >下的URL Rewrite Management选项。配置 - >目录 - >搜索引擎优化,因此“创建永久重定向...”标记为“是”。某些产品是通过Feed上传的,但上传的方式不正确。所以,我们重新上传它们以过度写。结果是“白衬衫A”的URL密钥在管理或导出的数据Feed中为“white-shirt-a.html”,但产生该产品的实际链接是“white-shirt-a-1”。 HTML“。如果我们去“white-shirt-a.html”,它会给我们一个404 Not Found。

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

3 个答案:

答案 0 :(得分:10)

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

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

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

  3. Reindex目录网址重写,您的所有网址都将被更正。

答案 1 :(得分:1)

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

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扩展名,这样您就可以清除管理面板中的所有永久重定向。

答案 2 :(得分:0)

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

我已经运行了这个查询:

" DELETE * FROM core_url_rewrite WHERE is_system!= 1";

该查询删除了所有自定义重写规则,其中我们有500,000个。大多数是在有人关闭" .html"搜索引擎优化中的扩展而不更改"更改网址时创建重写规则"到"否"。