ПРОЕКТЫ 


  АРХИВ 


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: RewriteCond + location



On Wed, Nov 12, 2008 at 03:14:04PM +0300, dron wrote:

> неудобно уже задавать вопросы по rewrite, но самому осилить не
> получается.
> 
> Есть:
> RewriteCond %{REQUEST_URI} !^/(admin|news|index.php)/(.*)$
> RewriteCond %{REQUEST_URI} !^/admin$
> RewriteCond %{REQUEST_URI} !^/site$
> RewriteRule     ^([0-9a-z/_]+)$      /index.php?application=content&path=$1 
> [L,NC]
> 
> 
> пробовал:
> location ~^/admin/(news|objects|faq|index)/?(.*)/?${
>         rewrite ^/([0-9a-z/_]+)$ /?application=content&path=$1 last;
> }
> 
> location ~^/site${
>         rewrite ^/([0-9a-z/_]+)$ /?application=content&path=$1 last;
> }
> 
> location ~^/admin${
>         rewrite ^/([0-9a-z/_]+)$ /?application=content&path=$1 last;
> }
> 
> с кавычками, с * тоже пробовал.
> Но это правило вообще не отрабатывает, как-будто и нет его...
> 
> если так:
> location / {
>  rewrite ^/([0-9a-z/_]+)$ /?application=content&path=$1 last;
> }
> 
> то отрабатывает везде, даже там, где не требуется, например в /admin/
> и остальных исключениях...

Во-первых, "!^/admin$" и прочие "!..." - это отрицания.

Во-вторых,

-    location ~^/admin/(news|objects|faq|index)/?(.*)/?${
+    location ~ ^/admin/(news|objects|faq|index)/?(.*)/?${

В-третих, регулярные выражения в 

   RewriteCond %{REQUEST_URI} !^/(admin|news|index.php)/(.*)$
и
   location ~^/admin/(news|objects|faq|index)/?(.*)/?${

разные.

Как-то так, в зависимости от того, что делается в остальныом конфиге:

     location / {
         rewrite ^/([0-9a-z/_]+)$ /index.php?application=content&path=$1 last;
     }

     location = /site {
         ...
     }

     location = /admin {
         ...
     }

     location ~ \.php$ {
         ...
     }

     location ~ ^/(admin|news|index\.php)/(.*)$ {
         ...
     }


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.