3

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

似乎是 ajax POST URL 已损坏:

虽然 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 调用停止工作。

4

4 回答 4

5

从 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的原始答案。

于 2013-09-24T11:20:17.867 回答
3

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

复制/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 ) {
于 2012-08-05T21:53:37.027 回答
0

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

于 2013-09-19T19:20:36.483 回答
0

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

解决方案:-

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

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

magento 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 缓存并刷新页面

于 2017-02-01T09:11:56.963 回答