1

看起来我找到了一个我在使用 magento 流行搜索结果时遇到的问题,但我要疯了,试图让它们正确重定向。

好的,情况就是这样。我不介意 Magento 在 SE 索引中的热门搜索结果查询。很多时候,客户输入了一些对搜索有帮助的东西。我的问题是当客户在搜索栏中键入与类别或产品完全相同的术语时。这会产生重复的内容问题,因此我在 Magento Admin 中重定向这些查询词。

但是,这些重定向是 302 临时重定向,而实际上它们应该是 301。

我在 Mage > CatalogSearch > controllers > ResultController.php 中找到了一个文件,该文件在第 65 行具有以下代码

if ($query->getRedirect()){
                $query->save();
                $this->getResponse()->setRedirect($query->getRedirect());                    
                return;
            } 

我认为这里的某个地方应该有一个 ->setHttpResponseCode(301)

但到目前为止,我无法在任何地方获得 301 重定向响应。

我当然可以在 htaccess 中做到这一点,但如果以编程方式设置会容易得多。

4

1 回答 1

1

如果您确定if确实正在输入该块,则该块应该可以工作:

if ($query->getRedirect()){
    $query->save();
    $this->getResponse()->setRedirect($query->getRedirect(), 301);                    
    return;
}

我假设它$this->getResponse()包含一个Mage_Core_Controller_Response_Http实例。查看它的超类方法Zend_Controller_Response_Abstract::setRedirect()

编辑:

如果您想使用后端定义永久重定向,请转到Catalog -> URL Rewrite Management -> Edit URL Rewrite -> Redirect -> Permanent (301)

于 2011-05-09T13:49:52.123 回答