Большое спасибо. Так просто, а сам что-то не додумался, какой только ереси не пробовал написать в регулярке.<br><br><div class="gmail_quote">20 ноября 2009 г. 14:57 пользователь Igor Sysoev <span dir="ltr">&lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt;</span> написал:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="h5">On Fri, Nov 20, 2009 at 01:38:39PM +0300, Dmitriy Belousov wrote:<br>

<br>
&gt; Мена подсетей, локейшенов и доменов вымышленные, любые совпадения случайны<br>
&gt; :))<br>
&gt;<br>
&gt; Не могу придумать, как сделать более гибко. Имею вот такую штуку:<br>
&gt;<br>
&gt; ...<br>
&gt;     geo $net<br>
&gt;     {<br>
&gt;          default                      0;<br>
&gt;          <a href="http://99.99.99.99/21" target="_blank">99.99.99.99/21</a>          1;<br>
&gt;     }<br>
&gt;<br>
&gt; ...<br>
&gt; ...<br>
&gt;<br>
&gt; server<br>
&gt; {<br>
&gt;     server_name             <a href="http://myserver.ru" target="_blank">myserver.ru</a>;<br>
&gt;<br>
&gt;     listen                  <a href="http://100.100.100.100:80" target="_blank">100.100.100.100:80</a>;<br>
&gt;<br>
&gt;     if ($net)<br>
&gt;     {<br>
&gt;            rewrite ^(.*)$ <a href="http://net.myserver.ru" target="_blank">http://net.myserver.ru</a>$1;<br>
&gt;     }<br>
&gt;<br>
&gt;     location / {<br>
&gt;             proxy_pass         <a href="http://127.0.0.1:8210/" target="_blank">http://127.0.0.1:8210/</a>;<br>
&gt;             proxy_set_header   Host              $host;<br>
&gt;             proxy_set_header   X-Real-IP        $remote_addr;<br>
&gt;<br>
&gt;     }<br>
&gt;<br>
&gt;     location /location1/ {<br>
&gt;             alias /path/to/location1/;<br>
&gt;             access_log   off;<br>
&gt;             expires      30d;<br>
&gt;     }<br>
&gt;<br>
&gt;     location /location2/ {<br>
&gt;             alias /path/to/location2/;<br>
&gt;             access_log   off;<br>
&gt;             expires      30d;<br>
&gt;     }<br>
&gt; ...<br>
&gt; ...<br>
&gt;     location /forum/ {<br>
&gt;             access_log   on;<br>
&gt;             proxy_set_header    X-Real-IP            $remote_addr;<br>
&gt;             proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;<br>
&gt;             proxy_pass      <a href="http://192.168.199.199:8220/" target="_blank">http://192.168.199.199:8220/</a>;<br>
&gt;     }<br>
&gt;<br>
&gt; ...<br>
&gt; ...<br>
&gt; }<br>
&gt;<br>
&gt; Как видно из конфига все, кто приходят из подсети $net реврайтятся на другой<br>
&gt; сайт на поддомене. Тот другой сайт - клон того, с которого делается реврайт,<br>
&gt; изменения там на уровне конфига движка самого сайта, т.е. имеет точно такой<br>
&gt; же конфиг веб-серверов (ну кроме реврайта конечно). Все было чудесно, пока<br>
&gt; не появился последний локейшн - /forum/, который вообще на другом сервере<br>
&gt; живет. Теперь стоит задача - реврайтить на основном сайте на поддомен для<br>
&gt; $net абсолютно все, кроме /forum/. Как это более гибко описать, чем строчить<br>
&gt; реврайты во всех локейшенах?<br>
<br>
</div></div>-            rewrite ^(.*)$             <a href="http://net.myserver.ru" target="_blank">http://net.myserver.ru</a>$1;<br>
+            rewrite ^(/(?!forum/).*)$  <a href="http://net.myserver.ru" target="_blank">http://net.myserver.ru</a>$request_uri?;<br>
<font color="#888888"><br>
<br>
--<br>
Игорь Сысоев<br>
<a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
<br>
</font></blockquote></div><br>