Magento 热门搜索结果 - 在管理中设置重定向时如何让他们执行 301 重定向

发布于 2024-11-06 06:21:56 字数 689 浏览 0 评论 0原文

看起来我发现了 magento 流行搜索结果中遇到的一个问题,但我正疯狂地试图让它们正确重定向。

好的,情况是这样的。我不介意 Magento 在 SE 索引中的流行搜索结果查询。很多时候,客户输入一些有助于搜索的内容。我的问题是,当客户在搜索栏中输入与类别或产品完全相同的术语时。这会产生重复的内容问题,因此我在 Magento 管理中重定向这些查询术语。

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

我在 Mage > 中找到了一个文件。目录搜索>控制器> ResultController.php 在第 65 行有以下代码

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

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

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

我当然可以在 htaccess 中执行此操作,但如果以编程方式设置会容易得多。

It LOOKS like I tracked down an issue I'm having with magento popular search results, but I'm going nuts trying to get them to redirect properly.

OK, here's the situation. I don't mind Magento's popular search results queries in the SE's index. Alot of times, the customer inputs something that can be helpful for search. My problem is when a customer types into the search bar the exact same terms as a category or products. This creates duplicate content issues, so I redirect these query terms in the Magento Admin.

However, these redirects are 302 temporary redirects, when they really should be 301.

I tracked down a file in Mage > CatalogSearch > controllers > ResultController.php that has the following code on line 65

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

I think that somewhere here, there should be a
->setHttpResponseCode(301)

But so far, I can't get a 301 redirect response anywhere.

I can certainly do this in htaccess, but it would be a lot easier if set programmatically.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

简单 2024-11-13 06:21:56

如果您确定确实正在输入 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()

编辑:

如果您想使用后端定义永久重定向,请转到目录 -> URL重写管理->编辑 URL 重写 ->重定向->永久(301)。

If you are sure, that the if block really is being entered, this one should work:

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

I assume that $this->getResponse() contains an Mage_Core_Controller_Response_Http instance. See its superclass method Zend_Controller_Response_Abstract::setRedirect().

EDIT:

If you want to define permanent redirects using the backend, goto Catalog -> URL Rewrite Management -> Edit URL Rewrite -> Redirect -> Permanent (301).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文