Если 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 открывает проверочный URL-адрес, выполняя вызов fopen. Обычно он похож на то, что выполняют браузеры, но это не одно и то же. Убедитесь, что fopen разрешен на вашем сервере. Чтобы убедиться, что он не заблокирован, можно добавить следующее к вашему PHP-файлу конфигурации:

SecFilterEngine Off

Убедитесь, что WordPress разрешает переименование URL-адресов

Чтобы разрешить переименование URL-адресов, WordPress создаст файл с именем .htaccess в папке установки. Этот файл будет создан, если вы используете не URL-адреса по умолчанию, а что-либо другое. Содержимое этого файла должно быть следующим:

# 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. Это довольно обычный модуль, включенный по умолчанию. Если вы используете Apache и не можете активировать вариант языков в разных каталогах, убедитесь, что для вашего сайта разрешен mod-rewrite. Если вы не уверены, как это сделать, отправьте сообщение своему поставщику веб-размещения. Например, такое:

Здравствуйте!

Плагин WordPress, который я хочу использовать, требует, чтобы модуль mod-rewrite был включен. Проверьте, пожалуйста, включен ли mod-rewrite для моего сайта http://example.com, и сообщите мне.

Допустим он включен, тогда необходимо, чтобы WordPress мог управлять правилами URL-записи. Для этого требуется открыть для WordPress доступ на запись в папку, где он установлен.

Повторимся, что если вы пользуетесь Apache, нужно выяснить, какой пользователь управляет работой Apache, и дать этому пользователю разрешение на чтение и запись в папку, где установлен WordPress. Это можно сделать через свой FTP-клиент, командную оболочку или по почте:

Снова здравствуйте,

Я хочу попросить вас еще об одной услуге. Я установил(а) WordPress в этот каталог:

ВАШ_КАТАЛОГ_УСТАНОВКИ_WP

Измените, пожалуйста, права доступа к файлам для всего каталога (рекурсивно), чтобы веб-сервер мог считывать и записывать данные в него? Мне нужно, чтобы WordPress мог производить запись в некоторые файлы.

Теперь проверьте снова.

Если этот вариант не сработает, зайдите на наш форум и начните обсуждение проблемы.

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