The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Организация в 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...
Ключи: mod_rewrite, lua, lighttpd, apache, redirect / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру