Если WPML не позволяет Вам выбрать языковые каталоги (например, http://example.com/es/ для испанского языка), это связано с тем, что плагин попытался получить доступ к этому URL-адресу и получил ошибку. Вот что Вы можете проверить, чтобы убедиться, что языковые каталоги работают.
Вот что Вам нужно настроить, чтобы языковые каталоги работали:
- Включите перезапись URL-адресов.
- Предоставьте WordPress права на чтение и запись папок.
- Убедитесь, что Ваш сайт использует структуру «красивых» постоянных ссылок.
Как видите, нет необходимости создавать физические каталоги на сервере. Возможность размещения языков в каталогах обеспечивается за счет перезаписи 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.