OR conditional usage behavior changed in 0.8.x?

Maxim Dounin mdounin at mdounin.ru
Mon Dec 6 15:17:33 MSK 2010


On Mon, Dec 06, 2010 at 03:45:02AM -0500, TECK wrote:

> Hi all,
> I used to be able to use the OR conditional this way:
> location = /(40x|50x).html {
> 	allow			all;
> }

This location should match only requests to "/(40x|50x).html" in 
all versions.

> It looks like I cannot use it anymore in 0.8.53 version. Can you please
> let me know what is the new type of compact condition I should use
> instead?
> Thanks for your help.

If you want regexp to work you have to mark location as regexp-one 
with "~" modifier (and rewrite regexp to be correct), i.e.

    location ~ ^/(40x|50x)\.html$ {
        allow all;

Though I really recommend using two normal (or exact match) locations instead, i.e.

    location = /40x.html {
        allow all;
    location = /50x.html {
        allow all;

Maxim Dounin

More information about the nginx mailing list