PHPCMS V9要做双语,很多同学都是迷茫的,在此特地分享我的双语制作步辶 我这种模式是把两个站点都改为HTML静态模式才可以实现

双语切换可分为两种模式:

1、解析二级域名来切换双语

解析二级域名如果主机支持可以二级域名绑定子目录,也可以用使用.htaccess来做重定向(适用于Apache服务器)

.htaccess 代码 放入根目录

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www.)?www.abc.com/cn/$

RewriteCond %{REQUEST_URI} !^/cn/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /html/en/$1

RewriteCond %{HTTP_HOST} ^(www.)?www.abc.com/cn/$

RewriteRule ^(/)?$ /cn/index.html [L]

2、建立根目录来切换双语

a/建立根目录我们需要做的就是在caches/configs/system.php中将html_root这句更改为'html_root' => '',//生成静态文件路径

b/后台站点管理中格式如下

Siteid站点名站点目录站点域名                                域名绑定目录管理操作

1        英文版       http://www.abc.com/    /      修改 | 删除

2        中文版  cn       http://www.abc.com/cn//cn      修改 | 删除

做好这些基本上就可以实现双语并切换了。但还有个问题出现了,上传的图片怎么更新都无法打开,因为我们上传附件时的URL地址并不是我们填写的那个http://www.abc.com/cn/地址 都是以默认http://www.abc.com/  来存储。这里我们需要修改一个。找到以下路径中 /phpcms/modules/content/classes/ url.class.php文件

定位到83行的样子 找到以下代码

$url_arr[0] = WEB_PATH == '/' ? $match_url.$html_root.'/'.$urls : $match_url.rtrim(WEB_PATH,'/').$html_root.'/'.$urls;

将他替换为

$this->sitedb = pc_base::load_model('site_model');

$siteid=param::get_cookie('siteid');

$siteinfo=$this->sitedb->get_one(array('siteid'=>$siteid));

$url_arr[0] = $siteinfo['domain'].$urls;

以上搞好后,现在我们需要处理分页的路径问题

找到以下路径/phpcms/libs/functions/中的global.func.php  定位在715行  或者找到以下代码

$url = str_replace(array('http://','//','~'), array('~','/','http://'), $url);

在这句代码下面加一句

$siteid=param::get_cookie('siteid');

$urlq= substr($url,-4); //这里主要针对后台内容分页 因为会重复主URL地址

if($siteid == 1){

if($urlq=="html"){

$url="http://www.abc.com/".$url;

}

}else{

if($urlq=="html"){

$url="http://www.abc.com/cn/".$url;

}

}

将上面的绝对地址替换为你的地址即可!

保存,现在试试是否OK了!|

以上只针对静态生成的页面,请知悉!

摘自:http://jingyan.baidu.com/article/aa6a2c14d68c7a0d4c19c4c8.html

PHPCMS V9双语站建设切换的更多相关文章

  1. phpcms v9手机站不支持组图($pictureurls)的修改

    phpcms v9自带的手机门户网站,有时候我们需要用到组图功能$pictureurls,我在做的时候发现,如果$pictureurls中只有一张图片会正常显示,但是如果有两张或两张以上的图片的时候, ...

  2. PHPCMS V9多站点[站群功能]动态设置与静态设置子站内容URL

    今天我们来讲解下 PHPCMS V9的站群功能的 动态站点与静态站点的配置 站群站点,分为动态站点,和静态站点两种设置方法: 静态的,就是将栏目和内容都了HTML 文件,我们先讲解下,站群的操作: 建 ...

  3. phpcms v9使用GET调用指定id文章内容、页面数据方法

    不知道大家有没有相同的体会?在使用Phpcms V9建站调用数据的时候,基础的数据用默认的模板的调用语句就好了,但复杂不常见的数据怎么调用呢?我们技术可能会研究半天,怀着探索的精神不断尝试.孜孜不倦. ...

  4. PHPCMS V9 全站通用日期时间标签

    用PHPCMS V9 建站时,经常会用到时间标签,它是通用标签调用-日期时间格式化,适用全站. 1.日期时间格式化显示: a\标准型:{date('Y-m-d H:i:s', $rs['inputti ...

  5. 利用PHPCMS V9站群功能建立分站

    hosts文件就在C:\Windows\system32\drivers\etc\hosts下 用一套CMS软件系统,做多个网站,统一管理,用户可以互通,这就是所谓的站群功能.这对于运营和维护都能节省 ...

  6. 用PHPcms V9四步完成WAP手机站搭建

    用PHPCMS最新发布的V9搭建了ONOW中文网,WEB网站(www.onow.cn)完成后,有用户提供手机访问的问题, 于是着手搭建ONOW手机WAP站(3g.onow.cn). 用PHPCMS V ...

  7. PHPCMS快速建站系列之phpcms v9 模板标签说明整理

    [摘要]本文介绍phpcms v9中模板标签使用说明. {template "content","header"} 调用根目录下phpcms\template\ ...

  8. PHPCMS V9 学习总结

    在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1]PHPCMS V9系统目录简析 在研究所有问题之前,请先了解一下系统的文件目录结构,具体如下图所示 ...

  9. PHPCMS V9 学习总结(转)

    转自:http://www.cnblogs.com/Braveliu/p/5074930.html 在实现PHPCMS网站过程中,根据业务需求,我们遇到很多问题,特此总结如下,以便大家参考学习. [1 ...

随机推荐

  1. Leetcode937. Reorder Log Files重新排列日志文件

    你有一个日志数组 logs.每条日志都是以空格分隔的字串. 对于每条日志,其第一个字为字母数字标识符.然后,要么: 标识符后面的每个字将仅由小写字母组成,或: 标识符后面的每个字将仅由数字组成. 我们 ...

  2. Leetcode962. Maximum Width最大宽度坡 Ramp

    给定一个整数数组 A,坡是元组 (i, j),其中  i < j 且 A[i] <= A[j].这样的坡的宽度为 j - i. 找出 A 中的坡的最大宽度,如果不存在,返回 0 . 示例 ...

  3. python re.sub详解

    re.sub(pattern, repl, string, count=0, flags=0) re.sub的含义,作用,功能就是: 对于输入的一个字符串,利用正则表达式(的强大的字符串处理功能),去 ...

  4. Django项目:CRM(客户关系管理系统)--83--73PerfectCRM实现CRM模板统一

    {#king_index.html#} {## ————————73PerfectCRM实现CRM模板统一————————#} {% extends "master/sample.html& ...

  5. 利用PHP获取访客IP、地区位置、浏览器及来源页面等信息

    这篇文章主要介绍了利用PHP获取访客IP.地区位置.浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧. 前言 本文中 ...

  6. springboot核心技术(五)-----消息(rabbitmq)

    消息 1. 大多应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦能力 2. 消息服务中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发 ...

  7. JasperReports报表变量13

    报表变量是建立在报表表达式之上的特殊对象.报表变量简化以下任务: 报表,其中大量使用在整个报告模板表达式.这些表达式可以通过使用报表变量只能声明一次. 计数,求和,平均,最低,最高,方差等:报表变量可 ...

  8. java时间戳和PHP时间戳的转换问题

    由于精度不同,导致长度不一致,直接转换错误.  JAVA时间戳长度是13位,PHP时间戳长度是10位.主要最后三位的不同. 方法,截取前10位,substr($time,0,10);

  9. Laravel-admin之Driver [] is not supported

    使用Laravel-admin做项目,原本好好的项目,今天一运行则报错:Driver [] is not supported,截图如下: 翻看百度翻译之后,才知道是不支持驱动器[],但是知道意思还是不 ...

  10. GIT → 11:Git 工作流与实战演练

    GIT → 11:Git 工作流与实战演练