如果 WPML 没有让您选择语言目录(例如针对西班牙语的 http://example.com/es/),原因是它尝试访问该 URL 时出错。

要使语言目录可用,您需要以下设置:

  1. 启用 URL 重写(我们将在后面谈到)。

正如您所看到的,没有必要在服务器上创建物理目录。 目录中的语言是可以通过URL重写实现。

WPML 如何确定它能否启用目录中的语言

WPML 尝试访问一个可检查目录中的语言是否可用的测试调用。 此测试调用是:

yourdomain/LANGUAGE/?____icl_validate_domain=1

例如,要检查我们自己的域 (wpml.org) 是否启用了西班牙语,我们会调用:

http://wpml.org/es/?____icl_validate_domain=1

当您进行此调用时,您将获得一个看起来空白的页面。 其内容(您可通过查看页面源代码看到)是:

<!--http://wpml.org-->

这告诉 WPML WordPress 允许访问此 URL 结构。 如果调用得以通过,WPML 将允许按目录使用语言。 否则,您会得到某种信息(大致)解释问题是什么。

如果 WPML 看到出错页面,它将禁用此功能并显示红色错误消息,并可能解释禁用原因。

重要:WPML 通过对其进行 fopen 调用访问验证 URL。 通常情况下,它类似于浏览器的操作,但不一样。 确保您的服务器上启用了 fopen。 您可以设置将以下内容添加到您的 PHP 配置文件中,以确保它不会被阻止:

SecFilterEngine Off

确保 WordPress 启用了 URL 重写

为了启用 URL 重写,WordPress 将在其安装文件夹中创建一个名为 .htaccess 的文件。 如果您使用的不是默认 URL,WordPress 将创建此文件。 该文件应当包含以下内容:

# BEGIN WordPress

<IfModule mod_rewrite.c>

  RewriteEngine On

  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f

  RewriteCond %{REQUEST_FILENAME} !-d

  RewriteRule . /index.php [L]

</IfModule>

# END WordPress

如果不存在,请尝试创建它。 如果文件存在但没有内容,则复制粘贴这些内容并保存。

“能够重写 URL”是什么意思?

URL 重写是个复杂的机制,WordPress 大量使用它。 要使这起作用,网站服务器(通常是 Apache)需要能够重写 URL,必须允许 WordPress 管理重写逻辑。

在 Apache 中,mod-rewrite 进行 URL 重写。 它是一个默认启用的相当标准的模块。 如果您使用的是Apache,无法激活语言目录,请检查您的网站是否激活了mod-rewrite。 如果您不确定怎么检查,请发信给您的主机提供商。 您可以这么写:

你好!

我想用一个WordPress插件,它需要启用mod-rewrite模块。 能否请你帮我看看,告诉我我的网站是否启用了 mod-rewrite? http://example.com

假设 URL 重写已启用,WordPress 现在需要能够控制 URL 写规则。 为此,WordPress 必须能够写入它的安装文件夹。

同样,如果您使用的是 Apache,请查看 Apache 是在哪个用户下运行的,然后允许该用户读写 WordPress 的安装文件夹。 您可以使用 FTP 程序,通过 shell 或电子邮件完成。

你好,还是我!

我还需要你帮我一个忙。 我已经在以下目录中安装了WordPress:

YOUR_WP_INSTALL_DIRECTORY

你可以改变整个目录的文件权限(递归),使 Web 服务器可以读写它吗? 我需要 WordPress 能够写入一些文件。

现在再次查看。

如果仍然不起作用,敬请访问论坛并提出新问题。

<!--http://wpml.org-->