Rewriting

wishmaster artemrts at ukr.net
Thu May 23 20:11:49 UTC 2013


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!




More information about the nginx mailing list