如何在OpenCart中自定义系统URL?例如,我希望将http://example.com/index.php?route=checkout/cart显示为http://example.com/cart
我知道OpenCart为产品,类别,制造商和信息页面提供了SEO URL,但其他任何东西似乎都没有内置的东西(至少在1.5.0版之前)。
事实证明,可以通过相对简单的更改单个文件来完成。没有.htaccess重写规则,只需修补catalog / controller / common /
seo_url.php文件,然后将漂亮的URL添加到现有数据库表中。
seo_url.php的补丁:
Index: catalog/controller/common/seo_url.php
===================================================================
--- catalog/controller/common/seo_url.php (old)
+++ catalog/controller/common/seo_url.php (new)
@@ -48,7 +42,12 @@
$this->request->get['route'] = 'product/manufacturer/product';
} elseif (isset($this->request->get['information_id'])) {
$this->request->get['route'] = 'information/information';
- }
+ } else {
+ $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($this->request->get['_route_']) . "'");
+ if ($query->num_rows) {
+ $this->request->get['route'] = $query->row['query'];
+ }
+ }
if (isset($this->request->get['route'])) {
return $this->forward($this->request->get['route']);
@@ -88,7 +87,15 @@
}
unset($data[$key]);
- }
+ } else {
+ $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($data['route']) . "'");
+
+ if ($query->num_rows) {
+ $url .= '/' . $query->row['keyword'];
+
+ unset($data[$key]);
+ }
+ }
}
}
需要两个编辑。第一个扩展index()
功能,以在url_alias
表中查找是否有 任何
关键字匹配$this->request->get['_route_']
。
第二个扩展了rewrite()
功能,可以在url_alias
表中查找 所有 路线,而不仅仅是产品,制造商和信息页的路线。
向数据库添加条目:
INSERT INTO `url_alias` (`url_alias_id`, `query`, `keyword`) VALUES
(NULL, 'checkout/cart', 'cart');
而已。http://example.com/cart应该返回与http://example.com/index.php?route=checkout/cart相同的内容,并且OpenCart应该识别$this->url->link('checkout/cart');
并返回指向漂亮URL
http://的链接example.com/cart
问题内容: 我想知道如何在opencart中创建自定义管理面板页面。 需要使用控制器登录- 管理面板似乎没有使用与普通站点相同的控制器。我知道如何使用opencart制作自定义页面(但这不适用于管理员) 一个简单的Hello World示例将是很棒的 问题答案: 路径名称在OpenCart 2中已更改-您将要创建 然后路线变成 OpenCart 1.x 包括完整的MVC流。 我发现了如何做到这一点
问题内容: 我正在尝试编写一个mysql查询,它将使用产生以下输出的类别表为pages表中的所有页面生成URL。 预期的输出量: 这是我尝试生成最多4个段的URL的MySql查询: 链接到 SQL Fiddle 问题答案: 这是我自己的问题的答案: 我尝试使用“ MySql Modified preorder tree to create url ”方法,该方法在查询优化和通过stackoverf
问题内容: 来自维基百科: 甲 蛞蝓 是识别使用人类可读关键字的页面的URL的一部分。 为了使URL易于用户输入,通常也删除或替换特殊字符。例如,带重音的字符通常被英语字母中的字母代替;标点符号通常会被删除;和空格(必须将其编码为%20或+)替换为破折号(-)或下划线(_),从美学上讲更令人愉悦。 语境 我开发了一个照片共享网站,用户可以在该网站上上传,共享和查看照片。 所有页面都是自动生成的,而
我正在尝试在log4j2中编写自己的RewritePolicy。文件指出: 然而,我不知道如何将它注入我的配置文件。我如何使它在运行时工作?
问题内容: .htaccess我很难受。我想为我正在工作的网站创建友好的URL。 基本上我想将其转换为: 变成这个: 如果以后需要,我也想知道如何将文章标题添加到URL的末尾(如下所示)(我正在使用PHP): 注意:Stackoverflow方法对我也有好处,例如,此问题的网址为: 但是您可以在id后面放任何东西,它也可以工作。像这样: 我使用了一些自动Web工具来创建.htacces文件,但该文
问题内容: 我正在尝试在Log4j2中编写自己的RewritePolicy。该文档指出: RewritePolicy是一个接口,允许实现在将LogEvent传递给Appender之前检查并可能对其进行修改。RewritePolicy声明一个必须执行的名为rewrite的方法。该方法通过LogEvent传递,并且可以返回相同事件或创建一个新事件。 这是我的 java类 : 这是我的 yaml配置 文