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

I use opencart with nginx+php-fpm. Sometimes it is necessary to redirect all clients, except admin (, 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;


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 request but in case rewrite is none and request processed by location ~ \.php$ rule. Why??


More information about the nginx mailing list