SEF 是 Search Engine Friendly(搜索引擎友好)的缩写,这个”友好“是指网址(URL)的友好。也就是说,给搜索引擎一个它能”读懂“并且乐于阅读的网址。简单的理解就是:在网址中不使用毫无意义的动态变量,代之以有实际意义的关键词。这也是 SEO(Search Engine Optimization)的手段之一。在 Joomla 网站上实施 SEF 是非常容易的。Joomla 核心本身已经自带了 SEF 功能,不过稍弱一些。如果你想实现更强大的 SEF,可安装第三方 SEF 组件。

Artio JoomSEF logo

目前在 Joomla 1.5 平台上比较著名的,也是实力比较强大的 SEF 组件主要有三个:AceSEFArtio JoomSEFsh404SEF。其中  sh404SEF 已经完全收费,没有免费试用版本,因此我很久不用了。本文简单谈一下 Joomla 之门网站在选择 SEF 组件时,为何最终选用了 Artio JoomSEF 而放弃了 AceSEF。

2010年4月初,我将 Joomla之门 网站的核心从 Joomla 1.0.15 升级到了 Joomla 1.5.15,促使我升级的一个原因就是可以在 j1.5 平台上实施更强大 SEF,从而提升整站的 SEO 效果。一开始我选择了 AceSEF,是因为该组件作者赠送了我一个 AceSEF Plus 版本(前台不显示版权链接)。但是使用 AceSEF 之后,问题接踵而至,搞得我焦头烂额,恰在这时,Artio JoomSEF 的作者按照我的要求进行了功能改进,我就立即转换到了 JoomSEF,从此再也没听到会员关于 SEF 的抱怨。这件事情促使我产生一个想法:我必须把这个过程中的痛苦与抉择发布出来,以便其他 Joomla 中文用户能够借鉴,从而选择适合自己 Joomla 网站的 SEF 组件。

下面从当时遇到的三个大问题来讲述一下我对 SEF 组件的选择:

对 Remository 下载组件的 SEF 支持

Joomla之门一直使用 Remository 组件来搭建下载栏目,至今未变。Artio JoomSEF 和 AceSEF 都有针对 Remository 下载组件的 SEF Extension,不过,都是收费软件,价格都在 7、8美元左右。当时由于 AceSEF 的作者赠送了我一个针对 Remository 的 SEF 外挂,我就直接使用了。一开启 SEF 就发现严重问题:AceSEF 直接使用了链接文字(Link Text)来生成 SEF 网址。由于本站是中文网站,下载栏目的链接都是中文,所以 AceSEF 生成的 SEF 网址(例如”提交文件“、”搜索下载“)都含有中文。这当然是不能接受的。我一面向 AceSEF 官方论坛提交改进建议(读取英文语言文件来生成友好网址),一面将下载栏目的界面语言强制变成英文。

我想很多会员一定还记得,那一段时间 Joomla之门的下载栏目竟然以英文界面示人,这实在是无奈之举。然而,AceSEF 官方丝毫不能理解我这种合理的建议,他们根本不认为自己的 Remository 外挂有问题。

我又把这个建议提交到 Artio JoomSEF 论坛。他们很快就答复:这个要求可以实现。很快他们就推出了新版本的 JoomSEF extension for Remository 外挂

对 Remository 下载组件“下载”功能的影响

Remository 下载组件有一个特色,就是它指向文件的那个”直接下载链接“是动态变化的。这是为了保护文件不被人盗链(hotlinking)。这一点对于 SEF 组件提出了挑战。因为 SEF 组件需要对应原始的动态网址(Dynamic URL)来生成相应的友好网址(SEF URL)。如果原始网址不固定,又如何通过固定的友好网址解析回去从而顺利开始下载进程?

我不是 SEF 编程专家,因此我不能解答这个问题。但是令我失望的是,AceSEF 的作者同样不能解答这个问题。我怀疑他们甚至压根没有理解这个问题!

一开始使用 AceSEF 时,每天都会接到至少5个会员的抱怨,说某某文件无法下载了。我就自己去测试。有时能下载,有时不能下载。后来我突然明白:Remository 每隔一段时间就自动切换了指向文件的直接链接,所以导致无法下载了。

后来,我换用 Artio JoomSEF,这个问题迎刃而解。我不清楚 JoomSEF 的作者如何从代码层面去处理这个难题,但是我可以肯定地说:Artio JoomSEF 对 Remository 下载组件的支持已经很完美了!

从 Remository 这一个组件上,我已经彻底淘汰了 AceSEF。我觉得花7.5欧元购买 JoomSEF 这个针对 Remository 的外挂太值得了。不过,我不希望读者认为我看问题太片面。我想继续举例来证明 AceSEF 到底差在哪里。

SEF 组件对中文搜索的支持

这个问题是本站某个会员发现的。当初使用 AceSEF 的那几天里,他反馈说,本站的全站搜索没法用,只能搜索英文,无法搜索中文。我去测试,果然如此。但我也不知道问题出在哪里。当时并没有想到是 AceSEF 导致的。我还以为是 Joomla 1.5 的搜索组件工作不正常。

用上 Artio JoomSEF 之后,我注意到全站搜索里面也能搜索中文了。这时才明白,原来 AceSEF 根本不能处理好 utf-8 编码的字符的解析。

在中文文章 SEF 网址问题上的对比

在我当初产生 JG Numbered Alias 这个 SEF 念头时,我首先是联系了 AceSEF 的作者,希望他们能把这个功能增加到 AceSEF 核心中去。AceSEF 的回答是:这个功能别人都用不上,既然你自己想要,那么付款30美元我们给你做。我看到这里心一下就凉了,不是因为钱的问题,而是因为他们竟然说”这个功能别人都用不上“。

然后,我把这个想法提交到 Artio JoomSEF 的论坛。JoomSEF 的作者说:这个建议很不错,我们尽快弄好。

你看到了吗?这是完全相反的两个反应。我并不是说”谁同意我,我就喜欢谁“,我相信如果你认真思考一下,就能理解我这个”采用文章 ID 号码为文章生成 SEF 网址“的功能是多么方便。对于如此好的功能,AceSEF 的官方竟然不屑一顾,我实在不能理解他们到底认为什么是重要的。

你现在可以访问 www.uhiker.com 这个网站看看,该站已经使用了这个功能——当然是由 Artio JoomSEF 实现的。对于一个不善于使用英文、甚至不愿意去手动设置文章别名的站长来说,自动使用文章 ID 来生成友好网址是最好不过的选择了。

对中文 Kunena 论坛的 SEF 支持

本站高级会员 Ethan 在论坛发表过自己对 Kunena 论坛组件 router.php 文件的改造(router 文件决定了如何生成 SEF 网址),这个想法与我对 Kunena 论坛的 SEF 规划不谋而合。与上面的文章 ID 方式一样,也是采用论坛版块 ID 及话题 ID、帖子 ID 来生成友好网址。

英文 Kunena 用户是不需要这个功能的,他们直接使用帖子标题来生成友好网址,这样在 URL 中能多一些关键词。但是中文不行(我一贯反对中文网址的),中文用户必须采用ID数字来生成网址(著名的 Discuz! 论坛就是这么做的)。

当我到 Artio JoomSEF 官方论坛提出这个建议时,他们一开始没理解,说“我们提供了免费的 Kunena SEF 外挂,你直接下载使用就行了”。然后我就给他们解释了中文论坛为何不能使用那个针对英文用户的外挂的理由,他们立即理解了这个思路,并表示将尽快增加这个功能。

在这个问题上,我没有征求 AceSEF 的意见。因为,我已经彻底对他们绝望了。我压根没兴趣浪费我的时间去给他们解释这一理念。

Joomla之门网站使用的第三方组件并不多,因此我无法从更多方面去比较 JoomSEF 与 AceSEF 的优劣。不过,我希望大家能赞成我的这个观点:我们不需要逐个去比较他们针对每一个组件的 SEF 支持情况,我们只需要看看他们两家的开发思路,指导思想,就能明白到底谁是赢家。所谓“思想决定一切”,如果方向错了,PHP 代码玩得再熟,产品未必能让用户满意。

最后,我想提醒读者不要误会,这些组件各自还都在不断发展中,以后会怎么样,本文不敢预测。但是就我所测试过的 AceSEF v1.3.5 及 Artio JoomSEF v3.6.3 来说,很明显 JoomSEF 远远胜过 AceSEF

Artio JoomSEF 免费版与收费版,用哪个?

Artio JoomSEF 的免费版本与收费版本只有一个区别:那就是免费版本会在你的前台页面(每一个页面)底部显示一个“Joomla SEF URLs by Artio”链接,指向其官方网站,而收费版本则不显示这个链接。

Joomla之门不是盈利性网站,因此我没有购买收费版的 JoomSEF,我更愿意用这笔资金来购买必须用的 SEF 外挂(例如将来支持帖子 ID 生成友好网址的 Kunena 外挂)。同时,我也乐意保留这个链接从而让所有访客都看到,Joomla之门正在、或许将永远使用 Artio JoomSEF 来生成友好网址。

尽管有人破解了 JoomSEF 的加密方式,可以将免费版的某个文件 hack 一下,从而去掉那个链接;尽管有人直接提供了收费版的免费盗版下载,但是,我想提醒你的是:你急于去掉这个链接,无非是为了追求“美”;而在你追求“美”的同时,如果放弃了“善”,你所追求到的,还能叫“美”吗?如果你无力支付购买费用,还是保留这个链接吧,它对于你网站的 SEO 毫无影响。

{quickdown:1154}

  1. 评论 (4)

  2. Add Yours

评论 (4)

这里还没有人发表评论

为什么我使用后只能显示首页,其他页面都不能显示?后来发现要在url前手共添加index/后才能正确的显示。这是什么原因?该怎么解决?

  附件
您无权查看附件
 

貌似。我用K2 。就不能使用了。分类显示不出来。。

  附件
您无权查看附件
 

试了一下还是撤回来了...[url]https://www.beeteam.cn[/url]

  附件
您无权查看附件
 

用ID来做网址,本来就不友善了(Google的SEO白皮书已经提及过),还谈什么SEF呢。<br />文中某些地方确实有点……苛刻,又要懒,又要做SEO的话,建议直接上百度推广。

  附件
您无权查看附件
 

免费下载最新Joomla!核心中文版

扫描此二维码,立即开始下载 Joomla 3 核心中文版

付费下载汉化版扩展

付费后即可下载独家海量

Joomla! CMS 扩展汉化版

了解付费会员制度

点击这里给我发消息

了解 joomlagate.com 网站的付费会员制度