【问题标题】:Magento category urls infinite redirectMagento 类别网址无限重定向
【发布时间】:2012-06-27 09:49:52
【问题描述】:

在 Magento 中,我目前在网站上有没有尾部斜杠的类别网址,即 www.example.com/gifts

我想将类别网址更改为带有斜杠,例如 www.example.com/gifts/

为此,我进入了管理部分,并在系统 -> 配置 -> '目录' -> 搜索引擎优化下编辑了 SEO 部分。

我在类别 URL 后缀框中添加了一个“/”。

这都是标准的,在重建索引后,该站点确实会显示所有带有斜杠的类别 URL,例如www.example.com/gifts/

问题是,当我点击 www.example.com/gifts/(或现在的任何类别)时,我会得到一个无限重定向循环

Chrome 显示“错误 310 (net::ERR_TOO_MANY_REDIRECTS):重定向过多。”,并且在 url 上执行 CURL -I -0 会显示 301 重定向Location : /gifts/.

我检查了我的 htaccess 文件,肯定没有与斜杠或类别重定向相关的规则。

编辑:我也在 htaccess 上启用了日志记录,并且我不断收到如下行:

strip per-dir prefix: /var/www/blah/app-core/index.php -> index.php

这正常吗?

以前有没有人见过这个问题,或者完全知道是什么原因造成的?

它对我来说完全是一个障碍,因此非常感谢任何见解或帮助。

谢谢 保罗

【问题讨论】:

    标签: .htaccess magento


    【解决方案1】:

    哈哈!!!抱歉,这里有点生气!

    终于弄明白了——我认为这可能是 Magento 1.4 中的一个错误。

    在 Mage/Core/Model/Url/Rewrite.php 文件中,请求路径为:

    $requestPath = trim($request->getPathInfo(), '/');
    

    所以我对“/gifts/”的请求变成了“gifts”。 Magento 然后尝试附加一个斜线,它会无限循环。

    当您将 trim() 更改为 ltrim() 时,它会起作用。 IE。 $requestPath = ltrim($request->getPathInfo(), '/');

    现在 '/gifts/' 是 'gifts/',而 www.example.com/gifts/ 是 200!

    当然,现在为了这样一个小调整而不得不扩展 Magento 是一件很痛苦的事情......

    【讨论】:

      【解决方案2】:

      听起来您的 url 重写表需要重建。登录到您的管理区域并重新索引 url 重写。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多