关键字:SEO(搜索引擎优化),SEF(搜索引擎友好),Joomla,alias,别名
Joomla的文章别名(alias),默认是不能使用中文的,默认它会自动过滤到中文只剩下英文和数字;如果别名什么都不写,Joomla默认用时间作为别名。这些都不是我们想要的,因为我们在利用SEF生成url时候,还是很想让url中带有中文的,这时候我们就需要手动去修改Joomla的某些文件了。
这里需要说明的是Joomla为什么一篇文章需要有名称和别名,因为文章的名称会在浏览器中默认显示为标题,而别名是用来做SEF的,如下图,我们利用别名生成url。
如果要使用中文的 别名/Alias/链接 (也就是在 Alias 字段里使用中文),需要修改两个文件。首先修改
/libraries/joomla/filter/filteroutput.php 里面的 stringURLSafe() 函式,搜索
$str = preg_replace(array('/\s+/','/[^A-Za-z0-9\-]/'),array('-',''),$str);
替换为
$str = preg_replace(array('/\s+/','/\./'),array('-','_'),$str);
接下来修改
/libraries/joomla/language/language.php 搜索
$string = htmlentities(utf8_decode($string));
替换为
$string = htmlentities($string, ENT_COMPAT, 'UTF-8');
ok了,现在Joomla的别名已经更好的支持中文语系的网站了。这里需要注意的是,如果你使用了SEF,请注意里面有一个选项就是url支持UTF-8格式,这项需要选中,否则SEF不能生成中文连接。如下图(以ARTIO JoomSEF 举例):
有人可能会为为什么别名中文这么重要,其实这个主要是针对搜索引擎优化用的,因为在url中包含关键字,被搜索引擎找到的概率更大一些,排名更前一些,所以这点还是蛮重要的,尤其是针对中文网站,中文别名还是很重要的。不过话说回来了Joomla让别名默认就支持UTF-8格式的不更好?省的手动去修改了。
文章地址:
http://javapub.iteye.com/blog/773466