Magento类别重定向切断了网址的查询字符串

itr*_*ets 0 php .htaccess magento

我们正在运行带有谷歌分析的Magento 1.4.2.0网上商店.众所周知谷歌会在网址上附加一个名为"gclid-Param"的查询字符串.

客户点击以下网址:http://www.myshop.com/bathrooms/showersbaths.html? glicd = somevalue

"浴室"类别在magento中重命名,因此magento会自动创建从旧类别名称到新名称"浴室家具"的重定向.

所以现在我们遇到了问题,magento在重写和重定向url时会用glic-param切断查询字符串.

有没有人知道如何防止这种情况或我们必须在哪个核心模块中修改新网址的构建?

最好的问候马库斯

小智 6

在1.9.1.0中,可以通过修补另一个类Mage_Core_Model_Url_Rewrite_Request/function _processRedirectOptions()来解决此问题.
只需在代码后添加

    $targetUrl = $this->_request->getBaseUrl() . '/' . $this->_rewrite->getTargetPath();

    $storeCode = $this->_app->getStore()->getCode();
    if (Mage::getStoreConfig('web/url/use_store') && !empty($storeCode)) {
        $targetUrl = $this->_request->getBaseUrl() . '/' . $storeCode . '/' . $this->_rewrite->getTargetPath();
    }

    if ($this->_rewrite->hasOption('R') || $isPermanentRedirectOption) {
Run Code Online (Sandbox Code Playgroud)

下列

            $queryString = $this->_getQueryString();
            if ($queryString) {
                $targetUrl .= '?'.$queryString;
            }
Run Code Online (Sandbox Code Playgroud)

并确保'if'语句保持关闭状态

           $this->_sendRedirectHeaders($targetUrl, $isPermanentRedirectOption);
    }
Run Code Online (Sandbox Code Playgroud)

我确信它已经足够了,因为你不需要为外部重定向传输查询字符串.

快乐的编码