首页 > 解决方案 > Opencart 3.x 为“主页搜索”和“管理页面”生成 SEO 友好的链接

问题描述

使用 opencart 3.x。我正在考虑更改.htaccess,seo_url,如果可能的话,我不想弄乱mysql中的表。我找不到解决方案的三个问题。我坚持这两个,试图让他们对 SEO 友好并在 php 页面上有一个块 html。任何帮助都会很好,谢谢。

当前链接:

https://www.-----.com/index.php?route=product/search&search=...

Q: 1) 如何让 SEO 链接公正

https://www.-----.com/search

管理员当前链接 https://www.-----.com/admin/index.php?route=common/dashboard&user_token= ...

Q: 2) 如何让 SEO 链接公正

https://www.-----.com/admin/dashboard

Q: 3) 如何在 FZilla 中手动在 opencart 上创建块 html?我喜欢将它们写在实际文件中,而不是修改它并搞砸存储。

标签: phphtmlsearchseoopencart

解决方案


前端

对于前端(目录),我有 2 个解决方案:长和短。

  1. 长。
  • catalog/controller/statup/seo_url.php首先,在line 103关闭后添加对自定义 url 的支持}
else {
    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "seo_url WHERE `query` = '" . $this->db->escape($data['route']) . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'");

    if ($query->num_rows && $query->row['keyword']) {
        $url .= '/' . $query->row['keyword'];
    } else {
        $url = '';
    }
}

然后在您的 phpMyAdmin 中运行以下 MySQL 代码。它将填充自定义 url。

INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'product/search', 'search');

您还可以添加所有其他自定义 url。

INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'common/home', '');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/wishlist', 'wishlist');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/account', 'my-account');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'checkout/cart', 'shopping-cart');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'checkout/checkout', 'checkout');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/login', 'login');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/logout', 'logout');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/order', 'order-history');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/newsletter', 'newsletter');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'product/special', 'specials');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/account', 'affiliates');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/voucher', 'voucher');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'product/manufacturer', 'brands');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'information/contact', 'contact-us');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/return/add', 'request-return');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'information/sitemap', 'sitemap');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/forgotten', 'forgot-password');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/download', 'downloads');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/return', 'returns');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/transaction', 'transactions');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/register', 'create-account');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'product/compare', 'compare-products');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/edit', 'edit-account');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/password', 'change-password');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/address', 'address-book');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'account/reward', 'reward-points');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/edit', 'edit-affiliate-account');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/password', 'change-affiliate-password');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/payment', 'affiliate-payment-options');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/tracking', 'affiliate-tracking-code');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/transaction', 'affiliate-transactions');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/logout', 'affiliate-logout');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/forgotten', 'affiliate-forgot-password');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/register', 'create-affiliate-account');
INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'affiliate/login', 'affiliate-login');
  1. 短的。

只需安装 SEO Module URL 并进行设置。您将自动为您编辑所有自定义 URL,然后您可以通过管理面板根据需要自定义它们。

在此处输入图像描述

SEO 模块网址

后端

对于后端(管理员)OpenCart 不实现 SEO Url 功能。您可以自己完成,但需要完成更多编码。

基本上你需要重现catalog/controller/startup/seo_url.phpin admin 文件夹

并将其注册在system/config/admin.php

$_['action_pre_action'] = array(
...
'startup/seo_url'

您还需要将自定义 url 添加到数据库中的 seo_url 表中。

INSERT INTO `oc_seo_url` (`store_id`, `language_id`, `query`, `keyword`) VALUES ('0', '1', 'common/dashboard', 'dashboard');

希望这可以帮助。


推荐阅读