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:如何删除所有永久重定向的主要内容,如果未能解决你的问题,请参考以下文章