PHPCMS中英双语网站的做法

本文提供的PHPCMS双语切换修改方法仅适用于生成静态页面网站的方式

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

 

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

.htaccess 代码 放入根目录

1
2
3
4
5
6
7
8
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www.)?www.phpcmsx.com/cn/$ 
RewriteCond %{REQUEST_URI} !^/cn/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /html/en/$1 
RewriteCond %{HTTP_HOST} ^(www.)?www.phpcmsx.com/cn/$ 
RewriteRule ^(/)?$ /cn/index.html [L]

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

建立根目录:我们需要做的就是在caches/configs/system.php中将html_root这句更改为

‘html_root’ => ”,//生成静态文件路径

后台站点管理中格式如下

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

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

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

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

找到以下路径中 /phpcms/modules/content/classes/ url.class.php文件

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

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

将他替换为

1
2
3
4
$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行  或者找到以下代码

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

在这句代码下面加一句

1
2
3
4
5
6
7
8
9
10
11
$siteid=param::get_cookie('siteid');
$urlqsubstr($url,-4); //这里主要针对后台内容分页 因为会重复主URL地址
if($siteid == 1){
    if($urlq=="html"){
        $url="http://www.phpcmsx.com/".$url;
    }
}else{
    if($urlq=="html"){
        $url="http://www.phpcmsx.com/cn/".$url;
        }
}

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

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

常见问题
所有的素材与插件都可以用吗?
本站所有的素材与插件(包括免费的),都是本工作室用过的,测试过的,或者二开修改过的,理论上来说没有什么bug,但不保证在所有环境下都可以完美运行。
收费素材与免费素材怎么定义的
本站收费的素材,也是及其便宜的,其实就是收个打赏钱,是工作室对这些插件的测试,整理,修复,优化的辛苦钱,并非开发插件的费用,原创插件或者模版收费稍贵一些。
出现问题了怎么办?
由于收费非常低,大部分都不超10元,所以并不提供售后服务,但您如果需要,可以联系我付费咨询,费用为50元/次/小时。如果是原创模版或者插件,可以免费为您指导。
原文链接:https://www.52gys.cn/3693.html,转载请注明出处。
0

评论0

没有账号?注册  忘记密码?