7

我将http://example.com/index.php作为我的主页。我的类别页面 URL 是http://example.com/index.php?id_category=10&controller=category

现在,我需要将我的主页重定向到类别页面。我尝试在 Preferences > SEO & URL's > Set Shop URL > Base URI as index.php?id_category=10&controller=category

现在,该页面正在重定向到我的类别 URL,但该页面未打开。URL 显示如下 http://example.com/index.php?id_category=10&controller=category/index.php

4

2 回答 2

17

你做错了。请按以下步骤操作:

A)简单但不推荐的方式:

1) 打开控制器/IndexController.php

2)修改函数initContent如下:

public function initContent()
{

   parent::initContent();
   Tools::redirect('index.php?id_category=10&controller=category');
   $this->context->smarty->assign('HOOK_HOME', Hook::exec('displayHome'));
   $this->setTemplate(_PS_THEME_DIR_.'index.tpl');

}

B) 推荐方式:

1) 将 Controllers/IndexController.php 复制到 override/Controllers/ 文件夹 2) 打开复制的文件并编辑如下:

class IndexController extends IndexControllerCore 
{

    public function initContent()
    {
       Tools::redirect('index.php?id_category=10&controller=category');

    }
}

3) 保存文件并转到缓存文件夹。查找class_index.php,如果存在则将其删除。然后检查网站是否工作正常。

备注:

1)上面的代码是给你的想法,它可能会或可能不会工作。请根据您的需要进行调整。

2) 在最新版本的 Prestashop 中,所有类都在 class_index.php 文件中进行索引。因此,如果您对控制器或类进行了任何覆盖,则在您删除该文件之前它可能无法工作。当向服务器发出新请求时,PS 会自动为您重新生成该文件。

希望这会有所帮助。

于 2013-09-26T07:33:17.307 回答
0

这是我的方式:

  1. 创建文件 override/controllers/front/IndexController.php
  2. 写作:
    类 IndexControllerCore 扩展 FrontController {
      公共函数 initContent()
        {
          工具::redirect('index.php?id_category=3&controller=category');
        }
      }

  1. 节省
  2. 删除文件缓存/class_index.php
  3. 利润!
于 2015-05-15T18:40:44.343 回答