| Организация в 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]
  
 | 
|  | 
| 
 | 
 | | Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite |