【问题标题】:Opencart Url redirectOpencart 网址重定向
【发布时间】:2013-01-08 11:49:14
【问题描述】:

我为 Opencart 做了一个自定义注册模块,

我的注册页面有以下网址:

www.mysite.com/index.php?route=account/customregister

而默认的注册页面网址是:

www.mysite.com/index.php?route=account/register

当用户单击指向默认注册模块 (route=account/register) 的任何链接时,我想将用户重定向到我的注册页面 (route=account/customregister)。我知道我可以编辑 .htaccess 文件以进行重定向或 url 重写,但我想通过 php 来做到这一点。有人知道我是否可以在我的扩展上添加一些类/函数或某种代码来自动将用户重定向到新的 url?

提前谢谢大家

附: 我无法修改核心文件,也不会编辑 .htaccess。

【问题讨论】:

  • 那你的手被绑好了……你不能修改核心文件是什么原因?使用 vQmod 动态修改核心文件怎么样?编辑 .htaccess 有什么不好?
  • 每次 Opencart 使用新版本更新时,核心文件都会被覆盖,我的模块可能安装在未安装 vQmod 的系统上(我试图避免安装步骤过多),并且我希望用户不要手动编辑任何文件以使事情正常进行。我正在寻找一种解决方案,网站管理员只需将扩展文件夹与 Opencart 文件夹合并。对我来说,最好和最简单的解决方案是手动编辑 .htaccess 文件,但我试图寻找一些更具“创造性”的技巧。并提前感谢您的所有建议
  • 老实说,“vQmod 可能未安装”是不太可能发生的事情之一。我想说 95% 的 OC 商店都使用 vQmod
  • @Frank 我也在开发一个 OC 扩展,我总是以 vQmod 必不可少的方式编写它们 - 没有讨论。如果有人想要我的扩展并且没有安装 vQmod,他必须这样做。这是最好的方法。

标签: redirect opencart


【解决方案1】:

这可以通过 vQmod 轻松实现。您需要使用 vQmod 编辑文件 /catalog/controller/account/register.php 并放置

$this->redirect($this->url->link('account/customregister', '', 'SSL'));

就在index() 方法声明中(因此使用它作为vQmod 的搜索并使用after 位置)

【讨论】:

    【解决方案2】:

    您可以通过添加以下代码从主页重定向到任何产品:

    目录/控制器/common/home.php

    $this->response->redirect($this->url->link('product/product', 'product_id=50', ''));
    

    其中 50 是您的产品 ID。这是在 Opencart 2.0.1.1 上。我这样做是因为我只销售一种产品,希望对您有所帮助。

    【讨论】:

    • 不确定您是否知道,但默认情况下 OC 会执行 302 重定向。如果这是烫发的事情,你可能想要 301 它而不是从你的主页中提取果汁。 $this->response->redirect($this->url->link('product/product', 'product_id=50', '301'))
    【解决方案3】:

    对于重定向,这也可以在 opencart 中工作

    $this->redirect($this->url->link('account/customregister', '', 'SSL')); 
    

    【讨论】:

      猜你喜欢
      • 2010-11-29
      • 1970-01-01
      • 2014-06-08
      • 2011-05-03
      • 2017-10-21
      • 2010-12-31
      相关资源
      最近更新 更多