所以,您希望有一个WPML网站,且每个语言选项使用不同的域?

在您的网站中使用不同域会产生一些不错的优势,而不仅仅是外观。

有些人喜欢访问看起来属于他们自己国家的域名,这可以带来访客忠诚度。 这也有SEO好处,因为您可以使用域来更好地定位用户。

每种语言采用不同的域是在WPML - >语言页面上设置。

每种语言采用不同的域是在WPML – >语言页面上设置。

 

首先,让我们解释在实践中使用时这到底意味着什么。

例如,如果您想在WPML中使用英语和德语,每个语言选项使用不同的域。

设置域语言时有两种选择:

  • 不同的域

例如,如果您有两个域:英语是example.com,德语是example.de,通过使用该选项可以实现这一点。

example.com > 英语

example.de > 德语

  • 子域

您还可以使用子域 – 就像例子中: en.example.com(英语),de.example.com(德语)。

en.example.com > 英语

de.example.com > 德语

那么,接下来的大问题是,您如何能做到这一点。 答案取决于您网站设置的两个主要组件:

  • 您的DNS服务器
  • 您的HTTP服务器(Apache、Nginx等等)

设置您的DNS服务器

手动设置

带有顶级域设置的DNS设置

如果您有不同的顶级域名(example.comexample.de),您首先需要配置它们,以具有适当的权威DNS服务器。 这通常是通过您从其购买域名的公司提供的设置面板完成的。

添加域后,您需要在您的DNS服务器中创建一个记录,让该记录指向您的HTTP服务器。 简单地说,服务器需要知道一旦您的用户在一个特定的域上,需要为他们提供哪些数据。 如果他们访问.de域,您想让服务器向他们展示您网站的德语版。

如果您有自己的DNS服务器,您可以(而且最好是)为指向您服务器的其他域创建一个“A记录”。

您可以使用两种不同的记录。

  • A记录 – 您指定您服务器的IP – 这是一个很好的快速解决方案
  • CNAME记录 – 您为您的服务器指定域名 – 有点慢,但如果您经常更改服务器的IP地址,这是个好方法

记录列表。您的顶级域配置屏幕可能会有所不同。

记录列表。您的顶级域配置屏幕可能会有所不同。

带有子域设置的DNS设置

子域的设置非常简单! 只需在您的DNS服务器中创建一个额外的A记录或CNAME记录,并将其指向同一HTTP/HTTPS服务器的IP或域名。

您的子域配置屏幕可能会有所不同

您的子域配置屏幕可能会有所不同

请注意,您完成这个设置后,您需要继续完成本指南的“设置HTTP服务器”部分。

cPanel设置

使用Cpanel会自动添加必要的DNS和HTTP项,因此您只需做这个即可准备您的服务器。

设置顶级域名

在大多数情况下,您需要使用的cPanel部分看起来是这样的。

domains.cpanel

您可以使用两种的方法来添加额外的域:

完成此操作后,您现在可以转到本指南的“收工”部分。

您的Apache和DNS的所有设置将由Cpanel创建并添加,一切都应可用了。

设置子域

要使用子域名设置,您需要选择从Cpanel菜单选择子域图标。

当创建子域时,您必须把它指向之前安装WordPress的位置,以便使用WPML的“每种语言使用不同域名”选项。子域屏幕

完成此操作后,您现在可以转到本指南的“收工”部分。

您的Apache和DNS的所有设置将由Cpanel创建并添加,一切都应可用了。

仔细检查配置后,确保所有域指向同一WordPress根文件夹。

设置HTTP服务器

接着,当您使用您可以管理的服务器时,我们来进行设置的第二个最重要部分。

为了让您的设置可以使用,您需要在您的Web服务器中创建条目,该条目将识别您刚刚添加并指向您的DNS服务器的域名(或子域名)。

如果您正在运行和管理自己的服务器,这是很容易 – 您只需要将服务器别名添加到您当前的配置。

以下示例用于Apache服务器设置。


 DocumentRoot "/var/www/www.example.com/webroot"

  ServerName example.com

  ServerAlias example.de

...

这是所有要添加的内容 – 容易吧?

Nginx服务器上设置这个也同样容易。


 server {

  server_name example.com example.de;

...

无论您选择哪种方法,最需要考虑的是别名配置都应该指向您正在安装WordPress的同一物理文件夹。

收工

当您完成所有这些设置后,您可以在WPML ->语言将设置更改为每种语言使用不同域名。当您填写所需的信息时(其他域或子域),按下保存按钮应该会验证您的域。它会报告验证是否有任何问题,然后保存您所做的所有设置。

调试

如果您的新设置仍然有问题,最好在WordPress中启用调试。 为此,您可以添加以下代码片段到您WordPress网站的wp-config.php文件。


// Turn debugging on

define('WP_DEBUG', true);



// Tell WordPress to log everything to /wp-content/debug.log

define('WP_DEBUG_LOG', true);



// Turn off the display of error messages on your site

define('WP_DEBUG_DISPLAY', false);



// For good measure, you can also add the follow code, which will hide errors from being displayed on-screen

@ini_set('display_errors', 0);

然后,您需要监控当您在WPML中保存域选项时在/wp-content/debug.log中创建的日志文件。

您还可以监控您的浏览器控制台中的admin-ajax.php响应(在键盘上按F12显示控制台)。 基于控制台输出和../wp-content/debug.log中的日志 – 您可以禁用非关键的WordPress插件,尝试找到问题根源。浏览器控制台示例

如果仍然有问题,最好在WPML论坛中联系我们的某位专家。


 

George Botsev

George Botsev

我是一个极客,喜欢星际迷航、计算机和所有其他稀奇古怪的东西。 我的其他兴趣主要涉及IT、系统管理、电子、开源软件、开源硬件、摄影和音乐。

我有超过10年的WordPress经验,还有近10年的IT和系统管理专业经验。

我的主要工作一直是调试问题,自2014年9月起,我加入了WPML支持团队,我帮助论坛中遇到问题的人解决问题。