Настройка Friedly URL с плагином Babel
Материал из Веб программирование.
Настройка Friedly URL с плагином Babel для MODx Revolution
Предполагается что уже стоит Babel для мультиязычность (если не стоит прочитайте Мультиязычность MODx Revolution).
Создаем плагин с именем "gateway" и ставим событие в закладке "System Events" - OnHandleRequest.
Настраиваем плагин под ваши язык:
<?php //make sure the plugin does not run on the mgr context (the manager) if($modx->context->get('key') != "mgr"){ /* grab the current langauge from the cultureKey request var */ switch ($_REQUEST['cultureKey']) { case 'lv': /* switch the context */ $modx->switchContext('weblv'); break; default: /* Set the default context here */ $modx->switchContext('web'); break; } /* unset GET var to avoid * appending cultureKey=xy to URLs by other components */ unset($_GET['cultureKey']); } ?>
В этом примере два сайта `web` и `weblv` (с cultureKey: lv), по умолчанию загружается сайт `web` если язык не указан в адресной строке. Настройте плагин исходя из ваших языков на сайте.
Не забываем указать site_url (абсолютный путь к языковой версии), cultureKey (язык), base_url (относительный путь к языковой версии), site_start (id главной страницы) в Context Settings обоих сайтов.
Например для русской версии будет site_url="http://atworld.ru/ru/", cultureKey="ru", base_url="/", site_start="1"
Следующим шагом настраиваем .htaccess
Включаем:
RewriteEngine On RewriteBase /
Находим код:
# The Friendly URLs part RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
И заменяем на:
# redirect all requests to /en/favicon.ico and /de/favicon.ico # to /favicon.ico RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(ru|lv)/favicon.ico$ favicon.ico [L,QSA] # redirect all requests to /en/assets* and /de/assets* to /assets* RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(ru|lv)/assets(.*)$ assets$2 [L,QSA] # The Friendly URLs part RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Use this as the "regular" FURL rule RewriteRule ^(ru|lv)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
После настройки .htaccess сайт на MODx Revolution должен работать Friedly URL. Набираем свой сайт в адресной строке с вашими /ru/ и /lv/.