strange if

Igor Sysoev igor at sysoev.ru
Thu May 20 18:03:32 MSD 2010


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

> 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 !~*).

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 Sysoev
http://sysoev.ru/en/



More information about the nginx mailing list