]]>
]]>
Рейтинг@Mail.ru

Настройка 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/.

]]>
Google+
]]>
Личные инструменты
Хочешь еще цитату? Если отладка - процесс удаления ошибок, то программирование должно быть процессом их внесения.Эдсгер Вайб Дейкстра
веб-программирование
Просмотры
чтим

Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 218 Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 224

]]>
Rambler's Top100
]]>
]]>
]]>