如何使用CMS页面作为PrestaShop的首页,并将默认店铺索引设置为/someurl?
我已经将这个定制的IndexController.php添加到/override/controllers/front中,以将CMS页面作为索引(请参见如何使用CMS页面作为PrestaShop的首页,并将默认店铺索引设置为/someurl?,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,我已经将这个定制的IndexController.php添加到/override/controllers/front中,以将CMS页面作为索引(请参见$id\u CMS) 现在我的问题是:如何将原始商店索引呈现到像/store这样的url?我不认为有一种简单的方法可以让内部Prestashop Dispatcher为索引声明一个基本url。我只是快速浏览了一下核心类,不知道如何轻松处理它 如果我必须这样做,我会创建一个新的cms页面或一个新的自定义控制器。只需在.htaccess中将根目录重定向
$id\u CMS
)
现在我的问题是:如何将原始商店索引呈现到像/store这样的url?我不认为有一种简单的方法可以让内部Prestashop Dispatcher为索引声明一个基本url。我只是快速浏览了一下核心类,不知道如何轻松处理它 如果我必须这样做,我会创建一个新的cms页面或一个新的自定义控制器。只需在
.htaccess
中将根目录重定向到此页面:
RewriteBase /
RewriteRule ^$ /store [L,R=301]
# ~~start~~ Do not remove this comment, Prestashop will keep automatically
# [...]
1) 在/controllers/front中创建自定义控制器
class myStoreIndexController extends FrontController {
public $php_self = 'myStoreIndex';
/**
* Assign template vars related to page content
* @see FrontController::initContent()
*/
public function initContent() {
parent::initContent();
$this->addJS(_THEME_JS_DIR_.'index.js');
$this->context->smarty->assign(array(
'HOOK_HOME' => Hook::exec('displayHome'),
'HOOK_HOME_TAB' => Hook::exec('displayHomeTab'),
'HOOK_HOME_TAB_CONTENT' => Hook::exec('displayHomeTabContent')
));
$this->setTemplate(_PS_THEME_DIR_.'index.tpl');
}
}
2) 进入PS控制面板菜单:设置>搜索引擎优化和网址,点击“添加新网页”,然后选择我们的“myStoreIndexController”作为网页,设置你需要的标题和元数据,最后进入“商店”作为友好的网址并保存
3) 在您的自定义路径中享受cms主页+商店我将用我刚刚实施的解决方案回答自己:自定义控制器+设置>seo和URL这就是我说的“我将创建一个新的cms页面或一个新的自定义控制器”。;)。您是否将基本
www.yoursite.com/
重定向到.htaccess
中的/store
?是的,在阅读您的答案之前我已经完成了:)我写在这里是因为我在PS论坛上没有找到明确的解决方案。不,我不想重定向根目录,因为我有我的cms页面作为根目录。我仍在测试此解决方案是否能在不破坏某些功能的情况下按预期工作,或者是否需要更多工作
class myStoreIndexController extends FrontController {
public $php_self = 'myStoreIndex';
/**
* Assign template vars related to page content
* @see FrontController::initContent()
*/
public function initContent() {
parent::initContent();
$this->addJS(_THEME_JS_DIR_.'index.js');
$this->context->smarty->assign(array(
'HOOK_HOME' => Hook::exec('displayHome'),
'HOOK_HOME_TAB' => Hook::exec('displayHomeTab'),
'HOOK_HOME_TAB_CONTENT' => Hook::exec('displayHomeTabContent')
));
$this->setTemplate(_PS_THEME_DIR_.'index.tpl');
}
}