<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title></title>
<META http-equiv=Content-Type content="text/html; charset=koi8-r">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
body {
  margin: 5px 5px 5px 5px;
  background-color: #ffffff;
}
/* ========== Text Styles ========== */
hr { color: #000000}
body, table /* Normal text */
{
 font-size: 9pt;
 font-family: 'Courier New';
 font-style: normal;
 font-weight: normal;
 color: #000000;
 text-decoration: none;
}
span.rvts1 /* Heading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #0000ff;
}
span.rvts2 /* Subheading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #000080;
}
span.rvts3 /* Keywords */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-style: italic;
 color: #800000;
}
a.rvts4, span.rvts4 /* Jump 1 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
a.rvts5, span.rvts5 /* Jump 2 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
span.rvts6
{
 font-size: 11pt;
 font-family: 'tahoma';
 font-weight: bold;
 color: #ffffff;
 background-color: #0000ff;
}
span.rvts7
{
 font-size: 11pt;
 font-family: 'tahoma';
}
a.rvts8, span.rvts8
{
 font-size: 11pt;
 font-family: 'tahoma';
 color: #0000ff;
 text-decoration: underline;
}
span.rvts9
{
 font-size: 8pt;
 font-family: 'arial';
 font-style: italic;
 color: #c0c0c0;
}
a.rvts10, span.rvts10
{
 font-size: 8pt;
 font-family: 'arial';
 color: #0000ff;
 text-decoration: underline;
}
a.rvts11, span.rvts11
{
 color: #0000ff;
 text-decoration: underline;
}
/* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */
{
 text-align: left;
 text-indent: 0px;
 padding: 0px 0px 0px 0px;
 margin: 0px 0px 0px 0px;
}
.rvps1 /* Centered */
{
 text-align: center;
}
--></style>
</head>
<body>

<p>Здравствуйте, Павел.</p>
<p><br></p>
<p>Вы писали 28 декабря 2009 г., 14:16:45:</p>
<p><br></p>
<div><table border=0 cellpadding=1 cellspacing=2>
<tr valign=top>
<td width=12 style="background-color: #0000ff;">
<p><span class=rvts6>&gt;</span></p>
</td>
<td width=1018 style="background-color: #ffffff;">
<p><span class=rvts7>Задача: на любой запрос от браузера IE 6 и ниже выдать статическую страницу ie6.html</span></p>
<p><span class=rvts7>Остальным версиям IE выдать то, что просят</span></p>
<p><br></p>
<p><span class=rvts7>Реализация: проверять строку заголовка HTTP_USER_AGENT</span></p>
<p><span class=rvts7>location / {</span></p>
<p><span class=rvts7>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($http_user_agent ~ "MSIE [4-6]") {</span></p>
<p><span class=rvts7>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rewrite ^/(.*)$ /ie6.html break;</span></p>
<p><span class=rvts7>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></p>
<p><span class=rvts7>&nbsp; &nbsp; &nbsp; &nbsp; }</span></p>
<p><br></p>
<p><span class=rvts7>Но столкнулся с такой интересной сложностью: у одного из посетителей стоит IE8, но его постоянно переадресует на ie6.html</span></p>
<p><br></p>
<p><span class=rvts7>Cтрока HTTP_USER_AGENT (по логам) от этого пользователя имеет такой вид:</span></p>
<p><span class=rvts7>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) &nbsp;; .NET CLR 1.1.4322; MRIE8PACK 2.0.1)</span></p>
<p><br></p>
<p><span class=rvts7>То есть в ней присутствует подстрока "MSIE 6" и одновременно с тем есть подстрока "MSIE 8"</span></p>
<p><br></p>
<p><span class=rvts7>Я предположил, что регулярное выражение с отрицательным предпросмотром решит проблему.</span></p>
<p><span class=rvts7>if ($http_user_agent ~ "(?&lt;!MSIE 8)MSIE [4-6]") {</span></p>
<p><span class=rvts7>&nbsp; &nbsp; &nbsp;rewrite ^/(.*)$ /ie6.html break;</span></p>
<p><span class=rvts7>}</span></p>
<p><span class=rvts7>Но оно не срабатывает.</span></p>
<p><br></p>
<p><span class=rvts7>Вот такое выражение в данном случае должно выполнить реврайт на ie8.html</span></p>
<p><span class=rvts7>if ($http_user_agent ~ "(?&lt;=MSIE\s8)MSIE [4-6]") {</span></p>
<p><span class=rvts7>&nbsp; &nbsp; &nbsp;rewrite ^/(.*)$ /ie8.html break;</span></p>
<p><span class=rvts7>}</span></p>
<p><span class=rvts7>Оно тоже не срабатывает.</span></p>
<p><br></p>
<p><span class=rvts7>Как исключить реврайт на ie6.html &nbsp;в такой ситуации?</span></p>
<p><br></p>
<p><span class=rvts7>--&nbsp;</span></p>
<p><span class=rvts7>Павел Волынцев</span></p>
<p><br></p>
<p><span class=rvts7>&nbsp; &nbsp;E-mail: &lt;</span><a class=rvts8 href="mailto:pavel.volyntsev@gmail.com">pavel.volyntsev@gmail.com</a><span class=rvts7>&gt;</span></p>
<p><span class=rvts7>&nbsp; &nbsp;ICQ #: &nbsp;55951947</span></p>
<p><span class=rvts7>&nbsp; &nbsp;Mobile Phone #: +7 913 902 4872</span></p>
<p><span class=rvts7>&nbsp; &nbsp;Skype: pavel.volyntsev</span></p>
<p><span class=rvts7>&nbsp; &nbsp;WWW:&nbsp;</span><a class=rvts8 href="http://copist.ru/">http://copist.ru/</a><span class=rvts7>&nbsp;&amp;&nbsp;</span><a class=rvts8 href="http://scripted.in/">http://scripted.in/</a></p>
<p><br></p>
</td>
</tr>
</table>
</div>
<p><br></p>
<p><br></p>
<p><a class=rvts11 href="http://sysoev.ru/nginx/docs/http/ngx_http_browser_module.html">http://sysoev.ru/nginx/docs/http/ngx_http_browser_module.html</a></p>
<p><br></p>
<p>Может это поможет?</p>
<p><br></p>
<p><span class=rvts9>--&nbsp;</span></p>
<p><span class=rvts9>С уважением,</span></p>
<p><span class=rvts9>&nbsp;Евгений &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><a class=rvts10 href="mailto:devyatyh@gmail.com">mailto:devyatyh@gmail.com</a></p>

</body></html>