如何在 OpenCart 中创建自定义的 SEO 友好 URL?
如何在 OpenCart 中自定义系统 URL?例如,我想要 http://example.com/index.php?route=checkout/cart 显示为 http://example.com/cart
我知道 OpenCart 为产品、类别、制造商和信息页面提供 SEO URL,但看起来没有任何内置的东西(至少在版本之前) 1.5.0)用于其他任何事情。
How can you customize system URLs in OpenCart? For example, I would like http://example.com/index.php?route=checkout/cart to be displayed as http://example.com/cart
I know OpenCart provides SEO URLs for products, categories, manufacturers and information pages, but it doesn't look like there is anything built-in (at least prior to version 1.5.0) for anything else.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
事实证明,这可以通过对单个文件进行相对简单的更改来完成。没有 .htaccess 重写规则,只需修补 Catalog/controller/common/seo_url.php 文件并将漂亮的 URL 添加到现有数据库表中。
seo_url.php 的补丁:
需要进行两处编辑。第一个扩展了
index()
函数,以在url_alias
表中查找与$this->request-> 匹配的任何关键字;获取['_route_']
。第二个扩展了
rewrite()
函数,以在url_alias
表中查找所有 路由,而不仅仅是产品、制造商和信息页面的路由。向数据库添加条目:
就是这样。 http://example.com/cart 应该返回与 http://example.com/index.php?route=checkout/cart 可以,OpenCart 应该识别
$this->url->link( 'checkout/cart');
并返回漂亮 URL 的链接http://example.com/cartIt turns out this can be done with a relatively simple change to a single file. No .htaccess rewrite rules, simply patch the catalog/controller/common/seo_url.php file and add your pretty URLs to an existing database table.
The patch to seo_url.php:
There are two edits required. The first extends the
index()
function to look in theurl_alias
table for any keyword matching$this->request->get['_route_']
.The second extends the
rewrite()
function to look in theurl_alias
table for all routes, not just those for products, manufacturers, and information pages.Adding entries to the database:
That's it. http://example.com/cart should return the same thing that http://example.com/index.php?route=checkout/cart does, and OpenCart should recognize
$this->url->link('checkout/cart');
and return a link to the pretty URL http://example.com/cart我正在使用 Opencart 版本 1.5.5.1,这是对我有用的确切代码:
I'm using Opencart version 1.5.5.1 and this is the exact code that worked for me:
一个简单的“无代码”方法是安装 vQmod。
说明在这里:
vQmod install wiki
然后上传此Opencart 论坛帖子到 vqmod/xml/ 文件夹。
该 xml 包含一个相对易于阅读的脚本,该脚本映射与上面两个答案类似的 url,但无需修改核心文件。所以网站更新不会杀死它。
A simple "no code" method is to install vQmod.
Instructions here:
vQmod install wiki
And then upload the xml file available in this Opencart forum thread to the vqmod/xml/ folder.
The xml contains a relatively easy to read script that maps the urls similar to the two answers above, but without modifying core files. So site updates will not kill it.
将其放在 index.php 文件顶部附近。这是唯一对我有用的解决方案。
Put this near the top of your index.php file. It was the only solution that worked for me.
vQmod xml 文件
vQmod xml file
OpenCart SEO for OpenCart 1.5.X 免费:)
您可以随意使用。类别名称/ID/ID,以便更快地解决 SEO
OpenCart SEO for OpenCart 1.5.X free :)
You can use as you wish. Category Name / ID / ID for quicker SEO resolving
根据您需要的自定义级别,有一些可用的扩展,包括免费的扩展。
这个适用于 OpenCart 1.5 和 OpenCart 2并且看起来相当可定制。但是,它不支持自定义硬编码 URL 部分,例如“checkout/cart”或“account/wishlist”。
这里是 OpenCart 2.0 的 vQmod(可能使用 1.5,未测试),它适用于上述扩展,并允许将这些硬编码字符串更改为您想要的任何内容,并支持多语言网站。
例如,英语中的“checkout/cart”将变为“cart”,法语中的“panier”等。
Depending on the level of customization you need, there are a few extensions available, including free ones.
This one works both on OpenCart 1.5 and OpenCart 2 and seems quite customizable. However it does not support customization of hardcoded URL parts like "checkout/cart" or "account/wishlist".
Here is a vQmod for OpenCart 2.0 (might work with 1.5, not tested) which applies to the forementioned extension and allows to change these hardcoded strings into whatever you want, and support multilanguage websites.
E.g. "checkout/cart" will become "cart" for English, "panier" for French, etc.
这是一个免费的扩展,可以添加自定义 SEO URL,并允许您管理多语言 URL、404、导出/导入和批量编辑。
SEO 模块 URL
嘿,在点击之前,请检查扩展程序。这是我的扩展,我知道它的编码正确,并且它完全满足用户的要求,而且更多,而且它是免费的。
我真的希望它能帮助别人。
here is a free Extension that adds custom SEO URLs, as well as lets you manage multi-langauge URLs, 404s, export/import, and bulk edit.
SEO Module URL
Hey, before you click down, check the extension. It is my extension, I know that it is coded properly and it does exactly what the user asks for and much more and it is FREE.
I really hope it helps someone.