ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Реврайт для IE6


  • To: Павел Волынцев <nginx-ru@xxxxxxxxx>
  • Subject: Re: Реврайт для IE6
  • From: Евгений Девятых <devyatyh@xxxxxxxxx>
  • Date: Mon, 28 Dec 2009 14:21:05 +0500
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:x-mailer:x-priority :message-id:to:subject:in-reply-to:references:mime-version :content-type:content-transfer-encoding; bh=YoNtAqOqUOg16fP/kyLPqZmMOiWoeIZh0Dn5eovlbSo=; b=kVCvn22l/AsnE6AEBuflLgjmQUQyH3ExN1v8qSrcAijyTfjq8CFrsyKtmPeBp/SqB2 c6vmN+kHntcYk0s+8siKOoihib7pX4yblAuym7DZkiJjdjESjLe7FciCmk1UBGk7wyuK BdX7y/IoA7M6SP/0q8RLOebacZxFZxONVVYAw=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:x-mailer:x-priority:message-id:to:subject:in-reply-to :references:mime-version:content-type:content-transfer-encoding; b=J+KkEdm/qrip/UEv8AlVWQt9Jjw3JonWrpIaHVkrrPTnY1Pam51iqu6oQHY6+zkEwr 8FviGjEmM/7ZHNVisVE5E5XdAtM7DTZk+8IUjb7jx1VFuBS7GVYjeI8FATXXNvRGx3Tl DEiXzV75SG6CAEa+/RemUHuNXGZ6LaVjRtT9U=
  • In-reply-to: <b1b411a70912280116j23d4d947rc795fd8ff6786caa@xxxxxxxxxxxxxx>
  • References: <b1b411a70912280116j23d4d947rc795fd8ff6786caa@xxxxxxxxxxxxxx>

Здравствуйте, Павел.


Вы писали 28 декабря 2009 г., 14:16:45:


>

Задача: на любой запрос от браузера IE 6 и ниже выдать статическую страницу ie6.html

Остальным версиям IE выдать то, что просят


Реализация: проверять строку заголовка HTTP_USER_AGENT

location / {

            if ($http_user_agent ~ "MSIE [4-6]") {

                rewrite ^/(.*)$ /ie6.html break;

            }

        }


Но столкнулся с такой интересной сложностью: у одного из посетителей стоит IE8, но его постоянно переадресует на ie6.html


Cтрока HTTP_USER_AGENT (по логам) от этого пользователя имеет такой вид:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRSPUTNIK 2, 0, 1, 90 HW; MRA 5.6 (build 03278); Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)  ; .NET CLR 1.1.4322; MRIE8PACK 2.0.1)


То есть в ней присутствует подстрока "MSIE 6" и одновременно с тем есть подстрока "MSIE 8"


Я предположил, что регулярное выражение с отрицательным предпросмотром решит проблему.

if ($http_user_agent ~ "(?<!MSIE 8)MSIE [4-6]") {

     rewrite ^/(.*)$ /ie6.html break;

}

Но оно не срабатывает.


Вот такое выражение в данном случае должно выполнить реврайт на ie8.html

if ($http_user_agent ~ "(?<=MSIE\s8)MSIE [4-6]") {

     rewrite ^/(.*)$ /ie8.html break;

}

Оно тоже не срабатывает.


Как исключить реврайт на ie6.html  в такой ситуации?


-- 

Павел Волынцев


   E-mail: <pavel.volyntsev@xxxxxxxxx>

   ICQ #:  55951947

   Mobile Phone #: +7 913 902 4872

   Skype: pavel.volyntsev

   WWW: http://copist.ru/ & http://scripted.in/




http://sysoev.ru/nginx/docs/http/ngx_http_browser_module.html


Может это поможет?


-- 

С уважением,

 Евгений                          mailto:devyatyh@xxxxxxxxx

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.