陈德馨

简体中文网站简单变成不同路径的繁体中文网站

252人参与 |分类: 站长百科|时间:2018年06月02日 10:56

这两天一直在想如何实现简体中文和繁体中文 WordPress 网站共用一个数据,折腾了很久都没有成功,最后才想起可以利用 JS 实现繁体和简体切换功能来实现,再加上重写规则即可实现简体中文网站跟繁体中文网站使用不同的 URL 地址。今天就跟大家分享一下我的折腾过程吧。

631.png

一、设置繁体中文网站的 URL 地址

因为我几台服务器用的是 Nginx,所以这里就以 Nginx 和 abc.com 为例进行说明。比如繁体中文网站地址是 abc.com/zh-hant/,我们只需要在 Nginx 相对应网站的 conf 里面添加以下规则即可:

rewrite ^/zh-hant/(.*)$ https://abc.com/$1?zh-hant last;

设置好之后可以在自己站点的首页或文章页中添加 zh-hant 试试是否正常打开,如果正常即可下一步,否则检查规则是否设置有误。如以下类似的地址都可以正常打开访问即表示成功:

https://abc.com/zh-hant/

https://abc.com/zh-hant/888.html

二、添加 JS 代码实现简体中文变繁体中文

我们可以通过 JS 代码来直接将简体中文变成繁体中文,而且可以将当前页面的所有本地链接地址改为添加有 zh-hant 的繁体中文地址,以防用户点击链接又切换回简体中文。想要实现这个功能我们只需要将以下 JS 代码添加添加到页脚文件的适当位置中,如 footer.php。

<script type="text/javascript">
var fanurl = window.location.href;
if(fanurl.indexOf("zh-hant") >= 0 ) {
document.write("<a id='StranLink' style='display:none' href='javascript:StranBody()'>简体</a><script type='text/javascript' src='https://abc.com/js/zh-cn-tw.js'><\/script>");
var hrefs = document.getElementsByTagName('a');
var rexDomain = 'abc.com';
var newDomain = 'abc.com/zh-hant';
for(var i=0,len=hrefs.length;i<len;i++){
hrefs[i].href = hrefs[i].href.replace(rexDomain,newDomain)
} }
</script>

特别注意:

1、点此下载 zh-cn-tw.js 文件,然后上传到自己站点并替换以上代码中的 zh-cn-tw.js 路径改为自己站点的路径。

2、将以上 abc.com 改为自己的站点域名。

3、添加好 JS 代码之后一定要记得清空缓存或者强刷新才行,要不然不一定生效。

4、由于本站的所有静态文件都是用二级域名,所以以上 JS 代码替换链接仅仅替换文章链接,不会涉及到静态文件链接的替换。如果没有采用动静分离的话,如果以上 JS 代码不生效,估计要做一个判断,让其不替换静态文件的 URL 地址。

添加好 JS 代码之后,我们就可以访问第一步中的地址,或者随便打开一篇文章,在域名后面添加上 zh-hant 试试看是否已经变成了繁体中文。如果已经成功变成繁体中文则继续第三步,否则检查第二步的代码是否添加或修改有误。

三、在页头添加 hreflang 属性

直接找到当前主题的 header.php 文件,添加以下代码(记得修改里面的域名为自己域名):

<link rel="alternate" hreflang="zh-hans" href="https://abc.com/" />

<link rel="alternate" hreflang="zh-hant" href="https://abc.com/zh-hant/" />

四、添加简体和繁体链接按钮

在简体中文或繁体中文显眼的地方添加上简体中文和繁体中文的链接地址,届时只要有人点击繁体中文或者直接访问繁体中文网址即可直接显示为繁体中文的内容。

五、总结

至此,我们已经成功将一个简体中文网站变成了两个“网站”,一个是简体中文网站,一个是繁体中文网站,它们共用同一套数据库。唯一缺点就是这个方法是 JS 实现的,虽然繁体中文网站有自己的 URL 地址,也有自己的繁体文字,但是源代码还是简体中文网站的。对于用户而言可能看不出来,但是对于搜索引擎而言,可能会认为是同一个页面,因为两个不同的 URL 地址页面的源代码是一模一样的。

正是因为这个缺点存在,最终还是把这个繁体中文去掉了,毕竟源代码是简体中文的,不管是对搜素引擎还是对广告联盟,都还是会认为是简体中文,这个有点得不偿失。甚至我都还担心搜索引擎未必会收录繁体中文网站的 URL 地址,毕竟它的源码是跟简体中文一样的。

来源:陈德馨博客(微信/QQ号:35435164),转载请保留出处和链接!

地址:

必填

选填

选填

◎已有 0 人评论,请发表您的观点。