Если 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.