The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Организация в Lighttpd переброса на страницу в зависимости от языка пользователя
Для организации редиректа на определенную страницу с учетом выбранного в
настройках браузера пользователя языка,  в Lighttpd можно использовать модуль
mod_magnet, позволяющий определить логику обработки запроса через простой
скрипт на языке Lua:

   lighty.env["uri.path"] = "/en/index.html"
   lang = lighty.request['Accept-Language']
   if (lang) then
           if (string.sub(lang,1,2) == 'ru') then
                   lighty.env["uri.path"] = "/ru/index.html"
           end
   end
   lighty.env["physical.rel-path"] = lighty.env["uri.path"]
   lighty.env["physical.path"] = lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"]

Для подключения данного скрипта для обработки запроса стартовой страницы ("/")
в файл конфигурации Lighttpd добавляем:

   $HTTP["url"] =~ "^/$" {
      magnet.attract-physical-path-to = ( "/path/to/your/script.lua" )
   }

При обработке запросов mod_magnet кэширует скрипт в предкомпилированном виде и
выполняет его в контексте http-сервера, что минимизирует дополнительную
нагрузку на сервер.

Для Apache гибкую обработку запросов на языке Lua можно реализовать при помощи модуля
mod_lua. Но для
переброса по языку в Apache можно обойтись обычным mod_rewrite, например так:

   RewriteCond %{HTTP:Accept-Language} ^ru [NC]
   RewriteRule ^$ /index_ru.html [L]

Или более сложный редирект на скрипт с учетом cookie:
 
   # Если выставлена cookie lang, то используем язык из нее:
   RewriteCond %{HTTP_COOKIE} ^lang=([a-z]{2,3})[-,;]? [OR]
   # Иначе делаем редирект по первому языку, указанному в заголовке Accept-language
   RewriteCond %{HTTP:Accept-language} ^([a-z]{2,3})[-,;]?
   RewriteRule ^$ /index.php?lang=%1 [L]


  
 
22.04.2010 , Источник: http://blog.credativ.com/en/2010/04...
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite

Ваш комментарий
Имя:         
E-Mail:      
Заголовок:
Текст:

 Добавить заметку
 Версия для печати
 
 Поиск заметки:
 

Последние заметки
- 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
- 11.05 Настройка беспроводного соединения в Debian GNU/Linux
- 07.05 Использование Google Drive в Linux
- 18.04 Использование нескольких сетевых стеков в Linux
- 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
- 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
- 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
- 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
- 21.03 Настройка DNSSEC в BIND 9.9
- 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
RSS | Следующие 15 записей >>


ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList