Strange if

Hi all,

i’m taking in charge a new nginx cluster with a very strange
configurations.

I’m trying rewriting the configuration and i’m unable to find a way to
better write this if condition:

if ($request_uri !~*
(^/$|^/ajax.php?type=counter&op=blog&blog(_id|)=.$.$|^/?nl_id=[0-9]+|?from=[0-9]+|?confirmkey=.$|^/post/([0-9]+)(?[0-9]+|)(/.|#.|?confirmkey=.|)$|/post/comment/(saved|close)/([0-9]+)(/[0-9]+|)(?blog=.|)$|/permalink/([0-9]+).html(#.)$|/archive/[0-9][0-9][0-9][0-9]-[0-9][0-9]$|/tag(.|)$|/member/[0-9]+$|/(media|album)(|/[0-9]+?from=[0-9]+|/[0-9]+)$|/user(.|)$|/blog|/sitemap(.xml|)|/images/smiley/rhymbox-(.)/(.).(gif|jpg|png)$|^/[0-9]+$|?timer=1|check_login?destination=.*|?nocache=1))
{
error_page 404 /splinder_404.html;
return 404;
}

Can it be translated on a location (note the negative !~*).

Thanks in advance

Daniele

2010/5/20 Daniele M. [email protected]:

   error_page   404 /splinder_404.html;
   return 404;

}

first, why don’t you split your regex ?

On Thu, May 20, 2010 at 03:29:09PM +0200, Daniele M. wrote:

error_page 404 /splinder_404.html;
return 404;
}

Can it be translated on a location (note the negative !~*).

It’s really hard to understand it.
Try to start from this:

 location = / {
     ...
 }

 location = /ajax.php {
     ...
 }

 location ~ ^/post/([0-9]+)$ {
     ...
 }

 # etc

 # fallback
 location ~ / {
     alias  /path/to/splinder_404.html;
 }


Igor S.
http://sysoev.ru/en/

Push that complexity into the app level. Don’t let the webserver
config get overly complex :slight_smile: