Updating some old "if" statements

Ian M. Evans ianevans at digitalhit.com
Thu Sep 27 19:35:24 UTC 2012

A few years back this list helped me create some locations that allowed
some extensionless files to run as php and pass the rest of their path
along as a variable. I'm wondering if there's been any changes or tweaks
over the years that would make these locations run less efficiently than
they could be. As I'm reading this more I'm seeing "If is evil" right?

Location #1:

location ~ /(photos|profile|review|profiles|reviews|news)(/|$) {
if ($uri ~ ^(.*/(photos|profile|review|profiles|reviews|news))($|/.*)) {
rewrite ^(.*/(photos|profile|review|profiles|reviews|news))($|/.*)
$1.php?mypath=$3 last;

Location #2:

location ~ ^/galleries(/.*$|$) {
if (-f /usr/local/nginx/htdocs/pixcache$request_uri/index.html) {
expires 2h;
rewrite ^(.*)$ /pixcache$1/index.html last;
rewrite ^/galleries(/.*$|$) /galleries.php?mypath=$1 last;

More information about the nginx mailing list