我有http://example.com/index.php作为我的主页。 我的类别页面网址为http://example.com/index.php?id_category=10&controller=category
现在,我需要将我的主页重定向到类别页面。 我尝试了首选项> SEO&网址>设置商店网址>基本URI as index.php?id_category = 10& controller = category
现在,该页面正在重定向到我的类别URL,但该页面未打开。 URL显示如下 http://example.com/index.php?id_category=10&controller=category/index.php?
答案 0 :(得分:17)
你这样做是错误的。这样做:
A)简单但不推荐方式:
1)打开Controllers / 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以覆盖/ 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会自动为您重新生成该文件。
希望这会有所帮助。
答案 1 :(得分:0)
这是我的方式:
class IndexControllerCore extends FrontController { public function initContent() { Tools::redirect('index.php?id_category=3&controller=category'); } }