Joomla别名(alias)的作用和启用中文别名

发布于 2010-12-02 作者 [重庆SEO]

本文来自百度空间博客搬家

2007年开始使用的是 hi.baidu.com/udjy
后来百度空间强制升级为轻博客 hi.baidu.com/imnoco
2015年百度关闭了百度空间

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格式的不更好?省的手动去修改了。