linux环境下设置joomla多语言多域名站点

2 篇文章 0 订阅

本文出自 手撕包菜 的博客,原文地址

joomla从2.5版本开始就开始支持多语言,能够实现同一域名下的多语言网站,但joomla本身却不提供多域名对应不同语言的实现。通过研究joomla系统插件languagefilter的运行过程,发现joomla的语言切换是通过url在里面加上语言参数控制的。我们知道,mod_rewrite可以较完美地实现url重写,下面我们就利用.htaccess重写规则来实现joomla下的多域名多语言,测试版本为joomla2.5。

一、准备

根据Joomla多语言网站的建设设置好一个网站同一域名下的多语言站点。

二、建立同一个网站另一个域名的vhost配置

假设原先建立的网站域名为joomla25.joomlapod.com,这个已经在apache中配置过,那接下来我们再配置一个域名为joomla25zh.joomlapod.com的域名,映射到同一个网站,步骤如下:

2.1 进入/etc/apach/site-avaiable目录,建立vhost配置文件joomla25zh如下(供参考):

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
 
        DocumentRoot /home/fluxyster/www/demosite/joomla25
 
        <Directory /home/fluxyster/www/demosite/joomla25/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
 
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog ${APACHE_LOG_DIR}/joomla25.log combined
 
        ServerName joomla25zh.joomlapod.com
</VirtualHost>

2.2 进入/etc/apache/site-enabled目录,运行命令

sudo ln -s /etc/apache/site-avaiable/joomla25zh .

2.3 重启apache服务器令配置文件生效

sudo apachectl restart,这样就能通过地址http://joomla25zh.joomlapod.com进入网站.

二、配置url的sef重写模式

2.1 进入后台,打开网站->全局配置

在seo设置里将“搜索引擎友好链接”和“使用Apache重写模式”均设为

2.2 到网站根目录重命名htaccess.txt为.htaccess,打开.htaccess在最后加下以下代码来重写url规则:

RewriteCond %{HTTP_HOST} ^joomla25zh.joomlapod.com$
RewriteRule ^/?$ http://joomla25zh.joomlapod.com/zh/ [R,L]

(注意:像我网站前台语言默认设置为en-GB,如果是中文zh-CN的话则要把上述代码替换为下面代码):
RewriteCond %{HTTP_HOST} ^joomla25.joomlapod.com$
RewriteRule ^/?$ http://joomla25.joomlapod.com/en/ [R,L]
后加入如下代码:

完成以上步骤网站能够自动识别不同域名对应不同语言

三、重写Language Switcher模板

默认的Language Switcher模板代码只适合单一域名,下面我们对它进行重写以适应不同域名:

3.1 复制/module/mod_languages/tmpl/default.php到/template/beez_20/html/mod_languages/ownlanguage.php

3.2 修改ownlanguage.php

打开ownlanguage.php,在

defined('_JEXEC') or die('Restricted access');
JHtml::_('stylesheet', 'mod_languages/template.css', array(), true);

后加入如下代码:
$count=count($list);
for($i=0;$i<$count;$i++){
        switch($list[$i]->link) {
        case "/en/":
                $list[$i]->link="http://joomla25.joomlapod.com/en/";
                break;
        case "/zh/":
                $list[$i]->link="http://joomla25zh.joomlapod.com/zh/";
               break;
        }
}

3.3 设置模块的备用布局

进入系统后台,点击扩展->模块管理,在选择类型筛选卡里选择“语言切换器”,打开启用中的语言切换器模块,在右侧“高级选项”的“备用布局”里选择ownlanguage.php,这样就用我们自定义的模板文件输出,完成后点击“保存并关闭”。

四、查看效果

进入网站首页,测试点击选项卡后能不能正确跳转和进行语言切换,实现的效果可参考http://joomla25.joomlapod.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值