PrestaShop如何禁用商城页面而不开启维护模式?
PrestaShop 1.7.5.0 禁用产品分类页、详情页方案(无需开启维护模式)
可以实现,仅拦截商品相关页面、保留其他CMS页面正常访问,不需要开启全站维护模式,提供两种可落地的方案:
方案1:后台配置前端跳转(无代码侵入,优先选择)
不需要修改站点源码,直接在后台配置即可生效:
- 进入后台路径:
设计 > 主题与logo > 自定义代码 - 在「页头自定义HTML」模块插入以下JS代码:
// 匹配产品详情页、分类页路由,跳转至指定页面 const banPath = ['/product/', '/category/'] if (banPath.some(path => window.location.pathname.includes(path))) { window.location.href = '/' // 可替换为你需要跳转的目标页面地址,比如自定义提示页 }
- 保存后清理缓存即可生效,所有CMS页面、首页、用户相关页面不受影响
方案2:重写控制器做服务端拦截(更严谨,无法被绕过)
适合有技术基础的用户操作,服务端直接拦截请求,稳定性更高:
- 先备份以下两个控制器文件,避免修改出错:
/controllers/front/ProductController.php(产品详情页控制器)/controllers/front/CategoryController.php(产品分类页控制器)
- 分别打开两个文件,找到
initContent方法,在方法第一行加入跳转逻辑:
// 直接跳转至首页,也可以替换为你自定义的提示页面地址 Tools::redirect('index.php');
- 修改完成后保存,清理站点缓存即可生效
补充说明
- 如果需要同时禁用搜索页、购物车、结算页等其他商城相关页面,只需要在上述拦截规则中添加对应路由/控制器即可
- 两种方案都不会影响「关于公司」「联系我们」等独立CMS页面的正常访问
- 操作前建议先备份站点数据,避免误操作导致站点异常
内容的提问来源于stack exchange,提问作者A404
相关产品推荐
相关产品推荐

