This worked consistently in 0.7.6x (and according to the docs, it should work):
location = /base { [stuff] }
location ^~ /base { [different stuff] }
On testing 0.8.30, accessing http://my.server/base works, but
http://my.server/base/plus/long/path/used.by.application
hangs for awhile, then returns a socket error. I even tried differentiating configuration with trailing slash:
location ^~ /base/ { [different stuff] }
...but apparently, the same results.
Logs show nothing. The access with the longer path doesn't show up in logs at all (not access, not error). I don't have debug build on hand right now, maybe I will compile one later if I have time. No crash, nginx stays up, but request utterly fails.
Any changes to location resolving code that would break the precedence between = and other operators, resulting in nginx to be confused?