Rewriting

B.R. reallfqq-nginx at yahoo.fr
Fri May 24 16:58:44 UTC 2013


Pure wild guess:

Maybe a missing trailing slash in the request resulting in a temporary
redirection (and then processed again)?
Have you checked the requests made on the client side for any sign of
unwanted redirection? You could then use them to correct your rewrite
directive.

Hope I helped,
---
*B. R.*


On Fri, May 24, 2013 at 2:01 AM, wishmaster <artemrts at ukr.net> wrote:

>
> Off course, you right. Thanks.
>
> if ($remote_addr !~ '190\.212\.201\.[0-9]{0,3}') {
>  rewrite ^/(.*)$ /unav/$1 break;
>  }
>
> location / {
>  ....
>  }
>  ........
>
>  But in log
>
>  2013/05/24 08:49:45 [error] 76017#0: *1910 open()
> "/usr/local/www/akbmaster/unav/unav/index.html" failed (2: No such file or
> directory), client: 190.212.201.198, server: akbmaster.server.com,
> request: "GET / HTTP/1.1", host: "akbmaster.server.com"
>
>   I see twice rewriting.
>   I have rewritten rule like this and this solved twice rewriting problem.
>  rewrite ^/([^/]*)$ /unav/$1 break;
>
>  Can you explain me why in my situation nginx have rewritten request twice?
>
> Cheers,
>
>
> > Hello,
> >
> > http://nginx.org/en/docs/http/request_processing.html
> >
> > Because in this case you need to place your rule in server block if you
> > would like to be valid for all custom defined locations in your config
> > For example:
> >
> > server
> > {
> > listen 80;
> >
> > if ($remote_addr ~ '192.168.1.25')
> > {
> > return 403;
> > }
> >
> > location /
> > {
> > ...
> > }
> >
> > location ~ \.php$
> > {
> > ...
> > }
> >
> > }
> >
> > On 23.05.2013 23:11 ч., wishmaster wrote:
> > > Hi,
> > > I use opencart with nginx+php-fpm. Sometimes it is necessary to
> redirect all clients, except admin (190.212.201.0/24), to "Service
> unavailable" page which is simple index.html file with logo, background
> image and some text, located in /unav directory.
> > > Below  some of nginx.conf
> > >
> > >
> > > location / {
> > >
> > > if ($remote_addr !~ '190\.212\.201\.[0-9]{0,3}') {
> > > rewrite ^/(.*)$ /unav/$1 break;
> > > return 403;
> > > }
> > > try_files $uri $uri/ @opencart;
> > > }
> > >
> > > location ^~ /unav {
> > > }
> > >
> > > location @opencart {
> > > rewrite ^/(.+)$ /index.php?_route_=$1 last;
> > > }
> > >
> > > [...skipped...]
> > >
> > > location ~ \.php$ {
> > >
> > >           try_files      $uri =404;
> > >           fastcgi_read_timeout 60s;
> > >           fastcgi_send_timeout 60s;
> > >           include           myphp-fpm.conf;
> > >
> > >                      }
> > >
> > > Problem  is in rewriting.
> > > This rule
> > >
> > > rewrite ^/(.*)$ /unav/$1 break;
> > >
> > > rewrite ONLY http://mysite.com/ request but in case
> http://mysite.com/index.php rewrite is none and request processed by
> location ~ \.php$ rule. Why??
> > >
> > > Thanks!
> > >
> > >
> > > _______________________________________________
> > > nginx mailing list
> > > nginx at nginx.org
> > > http://mailman.nginx.org/mailman/listinfo/nginx
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20130524/afc1da86/attachment.html>


More information about the nginx mailing list