【问题标题】:Cannot edit categories in Magento after updating to 1.7更新到 1.7 后无法在 Magento 中编辑类别
【发布时间】:2017-02-01 17:11:56
【问题描述】:

从 Magento 1.6 更新到 1.7 后,我无法再在生产服务器上编辑类别了。

好像是 ajax POST URLs 坏了:

虽然 ajax 调用在本地机器上运行良好,例如:

http://local.my-domain.de/index.php/admin/catalog_category/edit/key/fcc2335e931e8ec4236be7da67156087/id/7/?isAjax=true

他们搞砸了

http://my-domain.de/index.php/admin/catalog_category/edit/key/1ac1f1e5f75e665a2fd06eca4569d662/?admin%2Fcatalog_category%2Findex%2Fkey%2F1ed297c236a0c9df5530952aaf7e0618%2F=id/7/&isAjax=true

在生产服务器上,导致用于编辑类别的 ajax 调用停止工作。

【问题讨论】:

  • 我假设你已经刷新了所有的缓存,结合了 CSS/JS 等?
  • 是的,绝对双冲洗和三冲洗...似乎没有帮助:/
  • 你使用组合的 Javascript 吗?
  • 重新上传/js/和/skin/adminhtml。确保删除/替换文件夹,以免它是某种剩余的。
  • 除了属于扩展名的文件外,我已经删除了这些文件夹中的所有内容并重新上传了它们,但仍然存在同样的问题。

标签: magento magento-1.7


【解决方案1】:

从 Apache 2.2 切换到 Nginx 1.4.2 后,我在 Magento CE 1.7.0.2 上遇到了这个确切的错误。

在您的服务器 (Vhost) 文件中,根据以下内容更改 @handler 定义:

location @handler { 
    # rewrite ^(.*) /index.php?$1 last;
    rewrite / /index.php;
}

并为php 添加以下定义(除了您可能拥有的任何其他定义):

location ~ \.php/ { 
    rewrite ^(.*\.php)/ $1 last;
}

这解决了我的问题。完全归功于@isawk:http://www.magentocommerce.com/boards/viewthread/303318/#t421375 的原始答案。

【讨论】:

  • 您是否有完整的 NGINX 配置?我在使用默认的 Magento 时遇到问题。
  • @Jon Koops 嗨 Jon,这个 dood 有一个完整的工作示例:twincreations.co.uk/…
  • @JonKoopsthanks 指出这一点 - 我不再使用 magento,所以我不知道......
  • 这也解决了我在 CE 1.5 上的问题。谢谢!!
【解决方案2】:

由于这似乎与我们托管环境中的一些奇怪的服务器设置有关,以下是解决此问题的解决方法:

复制/app/code/core/Mage/Core/Model/Url.php

/app/code/local/Mage/Core/Model/Url.php

从第 997 行更改

if ($query) {

if ($query && strpos($query, 'catalog_category') === false ) {

【讨论】:

  • 显然这会起作用。但我觉得这只是一个快速的补丁,而不是一个实际的答案。不久之后,这将看起来像 ($query && (strpos($query, 'catalog_category') === false || strpos($query, 'catalog_product_simple') === false || strpos($query, ' cms_page') === false ......)
  • 这只是一个更大的问题。
【解决方案3】:

您的 .htaccess 文件中是否有任何可能修改 URL 的重写规则?看起来一个 HTML 编码的类别链接正在添加到您的 URL 中。

【讨论】:

  • 我不再使用这个 magento 版本了,所以我不能说...但是谢谢:9
【解决方案4】:

当您更新 magento 版本并且一切正常且按预期工作时,但目录/类别。当您无法从管理面板编辑/删除类别并在控制台中检查您的 ajax 请求时。

解决方案:-

复制/app/code/core/Mage/Core/Model/Url.php

/app/code/local/Mage/Core/Model/Url.php

ma​​gento 1.9 中 1016 附近的更改行号再次搜索“if ($query)”

if ($query) {
    $mark = (strpos($url, '?') === false) ? '?' : ($escapeQuery ? '&' : '&');
    $url .= $mark . $query;
}

替换

//if ($query) {
if ($query && strpos($query, 'catalog_category') === false ) {
    $mark = (strpos($url, '?') === false) ? '?' : ($escapeQuery ? '&' : '&');
    $url .= $mark . $query;
}

if (!$query) {
        $mark = (strpos($url, '?') === false) ? '?' : ($escapeQuery ? '&' : '&');
        $url .= $mark . $query;
    }

现在刷新 Magento 缓存并刷新页面

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多