WPML

Если WPML не позволяет Вам выбрать языковые каталоги (например, http://example.com/es/ для испанского языка), это связано с тем, что плагин попытался получить доступ к этому URL-адресу и получил ошибку. Вот что Вы можете проверить, чтобы убедиться, что языковые каталоги работают.


Вот что Вам нужно настроить, чтобы языковые каталоги работали:

  1. Включите перезапись URL-адресов.

  2. Предоставьте WordPress права на чтение и запись папок.

  3. Убедитесь, что Ваш сайт использует структуру «красивых» постоянных ссылок.

Как видите, нет необходимости создавать физические каталоги на сервере. Возможность размещения языков в каталогах обеспечивается за счет перезаписи URL-адресов.

Как WPML определяет, можно ли включить языки в каталогах


WPML пытается выполнить тестовый запрос, который проверяет, будут ли работать языки в каталогах. Этот тестовый запрос выглядит так:
yourdomain/LANGUAGE/?____icl_validate_domain=1

Например, чтобы проверить, включен ли испанский язык для нашего собственного домена (wpml.org), мы перейдем по следующему URL-адресу в нашем браузере:

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

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

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


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

Убедитесь, что у WordPress есть права на чтение и запись папок


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

Мне нужна еще одна услуга. Я установил WordPress в этот каталог:

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

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


Теперь проверьте еще раз.
Ваш сайт должен использовать структуру «красивых» постоянных ссылок. Вы можете изменить структуру постоянных ссылок Вашего сайта в настройках WordPress.

Поиск и устранение неисправностей


Если Вы используете CDN, такую как Cloudflare, она может блокировать правильную работу языков в каталогах, удаляя HTML-комментарии. В результате Вы можете увидеть ложноположительную ошибку, которая показывает предупреждение, связанное с ?____icl_validate_domain=1, без каких-либо проблем на фронтенде.

Нужна помощь?


Если это по-прежнему не работает, пожалуйста, задайте вопрос в поддержку WPML.

Автор: Amir · Последнее обновление: 18 октября 2024