语言位于不同域的服务器设置
一月 17th, 2012 作者:AmirWPML可处理来自不同域或子域的不同语言。 为了使之工作,需要在您的Web服务器上进行一些设置。 我们将首先谈论其工作原理,让您了解如何在自己的服务器上进行设置。
当收到请求时,会发生以下情况:
- DNS将网站的托管位置告诉浏览器。
- Web服务器获取请求,并决定让哪个虚拟主机应答。
- 虚拟主机运行WordPress和WPML。WPML告诉WordPress为每种语言返回哪个页面。
要使位于不同域的语言起作用,所有语言都需要指向安装的同一个WordPress。 您需要设置DNS和Apache配置以做到这一点。
如果您发现自己正在编辑.htaccess,试图将来自某个域的请求重定向到其他域,那么您做错了。 因为只安装了一个WordPress,所以没有什么内容需要重定向。
1) 设置DNS
您需要为不同的语言注册所有域或子域。 您如何执行此操作在很大程度上取决于您的主机托管控制面板,但最终的结果总是相同的。 所有域必须转到同一个Web服务器。
2) 设置Web服务器
在我们的示例中,我们将使用Apache,并解释配置文件看起来是怎样的。 您的服务器可能有一个基于Apache的控制面板,它为Apache的配置文件增加了漂亮的图形控制。 如果您无法确定如何使用控制面板实施以下操作,您可以从这里复制示例并询问您的托管服务提供商。
最简单的方法是对所有域使用单一的VirtualHost条目,使用ServerAlias指令让Apache以同一虚拟主机应答不同的域。
例如:
<VirtualHost *> DocumentRoot /your_wp_install_directory/wordpress ServerName www.english-domain.com ServerAlias www.french-domain.fr ... your other stuff here ... </VirtualHost>
这告诉Apache,安装了一个WordPress应答来自www.english-domain.com和www.french-domain.fr的请求。那些完全不同的域或子域没关系。
如果您不知道如何在虚拟主机文件中设置ServerAlias(也许是因为您无法直接访问它),你可以设置两个 VirtualHost 部分,这两个部分都指向完全相同的DocumentRoot(WordPress的安装路径),但带有不同的ServerName值。
您甚至可以不用WPML进行此设置(推荐)。 转到这两个域,确定您可以看到您的WordPress网站。
注:许多共享的主机托管服务提供商不会让您直接编辑Apache的配置文件。 在此情况下,您可以尝试创建指向同一物理WordPress安装的cPanel附加域。
3) 告诉WPML您在域中使用不同的语言
一旦此设置起作用,您可以告诉WPML用它来确定语言。
转到WPML->语言。在那里,为语言选择“各语言使用不同的域”。WPML将向您询问每个语言的域。请输入、验证并保存。
WPML在语言字段中设置的默认值为带有区域名称的子域。您可以用您的实际域名覆盖它。

