前端
对于前端(目录),我有 2 个解决方案:长和短。
- 长。
- 首先,在关闭
} 后的line 103 上的catalog/controller/statup/seo_url.php 中添加对自定义网址的支持@
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');
您也可以添加所有其他自定义网址。
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');
- 短。
只需安装 SEO Module URL 并进行设置。您将自动为您编辑所有自定义 URL,然后您可以通过管理面板根据需要自定义它们。
SEO Module URL
后台
对于后端(管理员),OpenCart 没有实现 SEO Url 功能。您可以自己完成,但需要编写更多代码。
基本上你需要在admin文件夹中重现catalog/controller/startup/seo_url.php
并在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');
希望这会有所帮助。